Educational Codeforces Round 161 (Rated for Div. 2)

在这里插入图片描述

Educational Codeforces Round 161 (Rated for Div. 2)

Educational Codeforces Round 161 (Rated for Div. 2)

A. Tricky Template

题意:开始没看懂。。。给出长度均为n的三个字符串abc,字符串s与模板t匹配的条件为:当模板位置字符为小写时, s i s_i si t i t_i ti必须相同,大写时二者必须不同。这里注意,字符匹配过程是不区分大小写的,’C‘与’c’是相同的。
现在需要找出一个模板t,使得t与字符串a和b匹配,且与c不匹配,是否能找到。

思路:只要字符串c存在一个位置的字符与a和b都不同即可。

AC code:

void solve() {cin >> n;string a, b, c; cin >> a >> b >> c;for (int i = 0; i < n; i ++) {if (a[i] != c[i] && b[i] != c[i]) {cout << "YES" << endl;return;}} cout << "NO" << endl;
}

B. Forming Triangles

题意:有n根棍,任取三根组成三角形,有多少种可能,现给出n个整数 a i a_i ai,第i根棍的长度为(2^ a i a_i ai)。

思路:组成的三角形一定是等腰三角形,才能满足任意两边之和大于第三边这样的三角形定理:

  • 三条边相等:长度相同的棍,任取仨
  • 两条边相等,长度相同的棍,任取俩,注意,第三条边只能去找比当前相同的两根棍严格小的边才能组成三角形

AC code:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define pb emplace_back
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;typedef long long LL;
typedef pair<char, int> PCI;
typedef pair<int, int> PII;
const int N = 2e5+10, M = 2001;
const int INF = 0x3f3f3f3f3f, mod = 998244353;
int T, n;
int a[N];int sum(int x) {if (x < 3) return 0;return x * (x - 1) * (x - 2) / 6;
}
int sum2(int x) {if (x < 2) return 0;return  x * (x - 1) / 2;
}void solve() {map<int, int> mp;cin >> n;for (int i = 1; i <= n; i ++) {int x; cin >> x;mp[x] ++;}int ans = 0;for (auto [x, y] : mp) {ans += sum(y);//任取仨}int now = 0;for (auto [x, y] : mp) {ans += sum2(y) * now;//二带一now += y;}cout << ans << endl;
}signed main() {fast();T = 1;cin >> T;while (T --) {solve();}return 0;
}

C. Closest Cities

题意:有n座城市,按顺序给出每个城市的坐标 a i a_i ai,我们定义一个城市到另一个最近城市的距离为两城市坐标差的绝对值,最近城市有且只有一个。一个城市到最近城市花费为一枚硬币,否则花费硬币数为两城市的距离。
给出t个查询,每次查询城市A->B的最小花费。

思路:

  • 首先给出城市是按照坐标大小排列的,意味着一个城市的最近城市有且只有一个并且相邻;

  • 当我们的路径上存在最近城市这条路时,我们的硬币花费就为1,假设路径不存在最近城市,那么我们的花费直接就是两城市的距离。现在每当路径上存在一段最近城市距离,我们的花费就会减少(这两个最近城市的距离再-1)枚硬币。

  • 然后一个城市到达另一个城市可以分两种情况去讨论,我们定义城市A<城市B:

    • A->B:一个前缀和,计算可以省去的硬币数;
    • B->A:一个后缀和,计算可以省去的硬币数;
  • 则两城市间的最小花费为,两城市的距离 - 可以省去的硬币数

AC code:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define pb emplace_back
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;typedef long long LL;
typedef pair<char, int> PCI;
typedef pair<int, int> PII;
const int N = 2e5+10, M = 2001;
const int INF = 0x3f3f3f3f3f, mod = 998244353;
int T, n;
int a[N];void solve() {cin >> n;vector<int> l(n + 1, 0), r(n + 1, 0);a[0] = -INF;for (int i = 1; i <= n; i ++) {cin >> a[i];if (i == 1) {continue;}l[i] = l[i - 1];if (a[i] - a[i - 1] < a[i - 1] - a[i - 2]) l[i] += (a[i] - a[i - 1]) - 1;}a[n + 1] = INF;for (int i = n - 1; i >= 1; i --) {r[i] = r[i + 1];if (a[i + 1] - a[i] < a[i + 2] - a[i + 1]) r[i] += (a[i + 1] - a[i]) - 1;}int t; cin >> t;while (t --) {int x, y; cin >> x >> y;if (x < y) {cout << a[y] - a[x] - (l[y] - l[x]) << endl;} else {cout << a[x] - a[y] - (r[y] - r[x]) << endl;}}}signed main() {fast();T = 1;cin >> T;while (T --) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413790.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot自动配置原理

1.SpringBootApplication注解 springboot是基于spring的新型的轻量级框架&#xff0c;最厉害的地方当属**自动配置。**那我们就可以根据启动流程和相关原理来看看&#xff0c;如何实现传奇的自动配置 SpringBootApplication//标注在某个类上&#xff0c;表示这个类是SpringBo…

域环境权限提升

Windows系统配置错误 在Windows系统中&#xff0c;攻击者通常会通过系统内核溢出漏来提权&#xff0c;但是如果碰到无法通过系统内核溢出漏洞法国提取所在服务器权限的情况&#xff0c;就会系统中的配置错误来提权。Windows系统中常见哦欸之错误包括管理员凭证配置错误&#x…

【重点!!!】【背包】【回溯】518.零钱兑换II

题目 跟39.组合总数、322.零钱兑换题目很类似。 法1&#xff1a;背包DP&#xff0c;最优解法 解释如下&#xff1a; 0 1 2 3 4 5(背包容量)1 0 0 0 0 0 没有硬币的时候&#xff09; 0 1 2 3 4 5(背包容量) 1 1 1 1 1 1 1 0 1 2 3 4 5(背包容量) 1 …

Leetcode刷题【每日n题】(3)

&#x1f3b5;今日诗词&#x1f3b5; 桃花潭水深千尺&#xff0c;不及汪伦送我情。 ——李白《赠汪伦》 目录 1.题目一 2.思路分析 3.代码实现 4.题目二 5.思路分析 6.代码实现 1.题目一 9. 回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 tr…

使用xbindkeys设置鼠标侧键

1.安装如下包 sudo apt install xbindkeys xautomation 2.生成配置文件 xbindkeys --defaults > $HOME/.xbindkeysrc 3.确定侧键键号 在终端执行下面的代码&#xff1a; xev | grep button 此时会出现如下窗口&#xff0c;将鼠标指针移动到这个窗口上&#xff1a; 单…

locust快速入门--使用分布式提高测试压力

背景&#xff1a; 使用默认的locust启动命令进行压测时&#xff0c;尽管已经将用户数设置大比较大&#xff08;400&#xff09;&#xff0c;但是压测的时候RPS一直在100左右。需要增加压测的压力。 问题原因&#xff1a; 如果你是通过命令行启动的或者参考之前文章的启动方式…

SSL证书自动化管理有什么好处?如何实现SSL证书自动化?

SSL证书是用于加密网站与用户之间传输数据的关键元素&#xff0c;在维护网络安全方面&#xff0c;管理SSL证书与部署SSL证书一样重要。定期更新、监测和更换SSL证书&#xff0c;可以确保网站的安全性和合规性。而自动化管理可以为此节省时间&#xff0c;并避免人为错误和不必要…

google网站流量怎么获取?

流量是一个综合性的指标&#xff0c;可以说做网站就是为了相关流量&#xff0c;一个网站流量都没有&#xff0c;那其实就跟摆饰品没什么区别 而想从谷歌这个搜索引擎里获取流量&#xff0c;一般都分为两种方式&#xff0c;一种是网站seo&#xff0c;另一种自然就是投广告&#…

OpenEL GS之深入解析视频图像处理中怎么实现错帧同步

一、什么是错帧同步? 现在移动设备的系统相机的最高帧率在 120 FPS 左右,当帧率低于 20 FPS 时,用户可以明显感觉到相机画面卡顿和延迟。我们在做相机预览和视频流处理时,对每帧图像处理时间过长(超过 30 ms)就很容易造成画面卡顿,这个场景就需要用到错帧同步方法去提升…

Unity3D代码混淆方案详解

背景 Unity引擎使用Mono运行时&#xff0c;而C#语言易受反编译影响&#xff0c;存在代码泄露风险。本文通过《QQ乐团》项目实践&#xff0c;提出一种适用于Unity引擎的代码混淆方案&#xff0c;以保护代码逻辑。 引言 在Unity引擎下&#xff0c;为了防止代码被轻易反编译&a…

基于springboot+vue的房产销售系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

阿里云容器服务助力万兴科技 AIGC 应用加速

作者&#xff1a;子白&#xff08;顾静&#xff09; 2023 年堪称是 AIGC 元年&#xff0c;文生图领域诞生了 Stable Diffusion 项目&#xff0c;文生文领域诞生了 GPT 家族。一时间风起云涌&#xff0c;国内外许多企业投身 AIGC 创新浪潮&#xff0c;各大云厂商紧随其后纷纷推…