比赛链接:Here

1311A. Add Odd or Subtract Even

签到题,

  • \(a > b\) 时必须做做减法,如果差值为偶数的话只需要 \(1\) 次不然做一次减法后再做一次 \(+1\) 即可
  • \(a < b\) 同理了
  • \(a = b\) 0次
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
ll a, b;
cin >> a >> b;
if (a == b) cout << "0\n";
else if (a > b) {
if ((a - b) & 1) cout << "2\n";
else cout << "1\n";
} else {
if ((a - b) & 1) cout << "1\n";
else cout << "2\n";
}
}
}

1311B. WeirdSort

题意:给出长度为 \(n\)​ 的数组以及长度为 \(m\)​ 的允许进行 \(swap(a[i],a[i + 1])\) 的下标,

问经过若干次之后是否能使得数组有序

思路:

注意到 \(n\le 100\) 那么我可以直接跑若干次循环对于 \(a[i] < a[i + 1]\) 的地方交换 (前提是允许交换),

如果最后有序了就输出 YES

const int N = 110;
int a[N], st[N];
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i) cin >> a[i];
memset(st, 0, sizeof(st));
for (int i = 1, x; i <= m; ++i) cin >> x, st[x] = 1;
for (int i = 0; i < n; ++i)
for (int j = 1; j < n; ++j)
if (a[j] > a[j + 1] and st[j]) swap(a[j], a[j + 1]);
bool f = 1;
for (int i = 1; i < n and f; ++i) if (a[i] > a[i + 1]) f = 0;
cout << (f ? "YES\n" : "NO\n");
}
}

1311C. Perform the Combo

题意:给一个长度为n的字符串 会犯m个错误 每次犯错误就要重新输入

问你所有字母共打了多少次?

思路

似乎很多人用前缀和写的,

我的思路是在某个位置去二分找是否有若干次在它之后会出错的次数并累计即可。

int cnt[300];
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
memset(cnt, 0, sizeof(cnt));
int n, m;
string s;
cin >> n >> m >> s;
vector<int>p;
for (int i = 0, x; i < m; ++i) {
cin >> x;
p.emplace_back(x);
}
sort(p.begin(), p.end());
for (int i = 0; i < n; ++i) {
int t = p.end() - lower_bound(p.begin(), p.end(), i + 1);
cnt[s[i]] += 1 + t;
// cout << s[i] << ": " << t << "\n";
}
for (auto c = 'a'; c <= 'z'; ++c) cout << cnt[c] << " ";
cout << "\n";
}
}

1311D. Three Integers

题意:

给了\(a、b、c\) 三个数,现在你可以对任意一个数进行任意次数的 \(+1\) 和 \(-1\) 问你最少操作次数让\(b\%a=0,c\%b=0\)

思路:

那 \(a,b,c\) 改变的最大范围也就是 \([1,10000]\),直接枚举就可以,但是 \(10000^3\)​ 明显是会超时的。这里稍微优化一下。

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int _; for (cin >> _; _--;) {
int a, b, c;
cin >> a >> b >> c;
int aa = a, bb = b, cc = c;
int cnt = INT_MAX;
for (int i = 1; i <= 11000; ++i)
for (int j = 1; i * j <= 11000; ++j)
for (int k = 1; i * j * k <= 11000; ++k) {
if (cnt > abs(i - a) + abs(i * j - b) + abs(i * j * k - c)) {
cnt = abs(i - a) + abs(i * j - b) + abs(i * j * k - c);
aa = i, bb = i * j, cc = i * j * k;
}
}
cout << cnt << "\n" << aa << " " << bb << " " << cc << "\n";
}
}

Codeforces Round #624 (Div. 3) (A~D,CD Good)的更多相关文章

  1. Codeforces Round #624 (Div. 3)(题解)

    Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...

  2. Codeforces Round #395 (Div. 2)(A.思维,B,水)

    A. Taymyr is calling you time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  3. Codeforces Round #624 (Div. 3) F. Moving Points 题解

    第一次写博客 ,请多指教! 翻了翻前面的题解发现都是用树状数组来做,这里更新一个 线段树+离散化的做法: 其实这道题是没有必要用线段树的,树状数组就能够解决.但是个人感觉把线段树用熟了会比树状数组更有 ...

  4. Codeforces Round #624 (Div. 3) C. Perform the Combo(前缀和)

    You want to perform the combo on your opponent in one popular fighting game. The combo is the string ...

  5. Codeforces Round #249 (Div. 2) C题,模拟画图 ----未解决!

    http://codeforces.com/contest/435/problem/C

  6. Codeforces Round #258 (Div. 2)(A,B,C,D)

    题目链接 A. Game With Sticks time limit per test:1 secondmemory limit per test:256 megabytesinput:standa ...

  7. Codeforces Round #263 (Div. 2)C(贪心,联想到huffman算法)

    数学家伯利亚在<怎样解题>里说过的解题步骤第二步就是迅速想到与该题有关的原型题.(积累的重要性!) 对于这道题,可以发现其实和huffman算法的思想很相似(可能出题人就是照着改编的).当 ...

  8. Codeforces Round #323 (Div. 2) B 贪心,暴力

    B. Robot's Task time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  9. Codeforces Round #375 (Div. 2)【A,B【模拟】,D【DFS】】

    PS_B:阿洗吧!B题卧槽数组开了250... PS_D:D题主要挂在了50*50口算得了250,数组开小,然后一开始还错了.= =哎,以后对于数据范围还是注意一点: 卧槽,这场可真二百五了... A ...

  10. Codeforces Round #374 (Div. 2)【A,B,C】

    = =C题这种DP打的少吧,记得以前最短路分层图打过这样子的,然后比赛前半个小时才恍然大雾...然后瞎几把还打错了,还好A,B手速快..上分了: A题: 计算B的连续个数的组数,每组的连续个数: 水题 ...

随机推荐

  1. 线性代数导论MIT第二章知识点上

    线性代数导论MIT第二章求解线性方程组 2.1--2.2知识点 1.向量与线性方程组 2.不同角度看方程式 也就是矩阵的乘法原型: 以行来看方程式就是原式 以列来看方程式 以矩阵来看方程式 3.消元法 ...

  2. 痞子衡嵌入式:我当了回华邦电子&恩智浦2023联合技术论坛演讲嘉宾

    「华邦电子(Winbond)」是国际领先的存储器厂商,其串行 NOR Flash 产品在全球市场占有率稳居前列. 11月23日,华邦电子联合「恩智浦(NXP)」在上海搞了场主题为"芯智无限, ...

  3. HTTP 和 HTTPS 之间除了安全性区别外,还有哪些区别

    HTTP 和 HTTPS 是两种常见的网络协议,它们都是用于在浏览器和服务器之间传输数据的.但是,它们之间也有一些重要的区别,这些区别涉及到数据的安全性.传输性能.使用成本和搜索排名等方面.本文将从以 ...

  4. VideoPipe可视化视频结构化框架更新总结(2023-12-5)

    项目地址:https://github.com/sherlockchou86/video_pipe_c 往期文章:https://www.cnblogs.com/xiaozhi_5638/p/1696 ...

  5. 前端优化之路:git commit 校验拦截

    [前言] 前面在git分支规范那篇文章里,介绍了commit提交规范,如下图 但是想要做到高效落地执行,就需要做些别的功课,先展示下成果图 没错,对不符合规范的commit进行了拦截,符合才可以成功提 ...

  6. SpringBoot启动@Test单元测试时,一致卡在加载junit-bom-5.6.3.pom.xml文件

    今天做项目时创建一个SpringBoot工程,使用的版本是<spring-boot.version>2.3.7.RELEASE</spring-boot.version> 当我 ...

  7. Nginx服务器常用参数设置

    Nginx作为一个高性能的Web服务器和反向代理,它的性能可以通过调整底层操作系统的参数来进一步优化.以下是一些常见的操作系统级别的调整,通常针对Linux系统: File Descriptors L ...

  8. 华企盾DSC手机app登录不上常见处理方法

    1.DSC服务器是否正常运行. 2.telnet外网是否通.(需要在程序与功能中添加telnet功能才能在cmd窗口用telnet命令 举例:telnet 172.17.2.20 5558) 3.其它 ...

  9. ElasticSearch之cat count API

    读取当前存储的记录的数量. 命令样例如下: curl -X GET "https://localhost:9200/_cat/count?v=true&pretty" -- ...

  10. MySQL运维实战(1.2)安装部署:使用二进制安装部署

    作者:俊达 引言 上一篇我们使用了RPM进行安装部署,这是一种安装快速.简化部署和管理过程.与操作系统提供的包管理工具紧密集成的部署方法.此外,当你需要更高的灵活性和自定义性,并且愿意承担一些额外的手 ...