比赛链接: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. 搭建 MongoDB (v6.0) 副本集记录

    副本集概述 副本集(Replica Set)是一组带有故障转移的 MongoDB 实例组成的集群,由一个主(Primary)服务器和多个从(Secondary)服务器构成.通过Replication, ...

  2. 8.0的新特性 -- invisible(不可见索引)

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin invisible index 不可见索引 以前的版本,假如这个索引无用了会怎么样?那就只能是drop掉了.但是dro ...

  3. 运维初级实践——Linux系统命令教程

    区块链运维工程师在Linux环境中常用的命令.快捷键,以及安装软件和文件管理的最佳实践. 1. 常用Linux命令 1.1 文件和目录操作 ls:列出目录内容 cd:更改目录 mkdir:创建新目录 ...

  4. 关于fstream对象的open方法报错183的问题

    当使用fstream,ifstream,ofstream,这几种对象打开文件, 但文件已经存在的时候, 调用GetLastError()函数,会返回错误代码183, 这个代码代表该文件已经存在,是正常 ...

  5. SQL Server 自动增长清零的方法

    方法一: truncate table TableName 删除表中的所有的数据的同时,将自动增长清零.如果有外键参考这个表,这个方法会报错(即便主键表和外键表都已经没有数据),请参考方法2. 方法二 ...

  6. CH395+EMQX实现MQTT应用(Windows系统)

    目录: 1.MQTT协议 1.1简介 1.2特性 1.3实现方式 1.4数据包结构 2.EMQX具体操作步骤 3.代码说明 4.工程链接 MQTT协议 1.MQTT简介 MQTT是一种基于 发布/订阅 ...

  7. .NET周刊【12月第2期 2023-12-13】

    国内文章 用最清爽的方式开发dotNet https://www.cnblogs.com/ncellit/p/17881779.html 本文介绍了如何以清爽的方式开发dotNet应用,特别是简单的A ...

  8. 【UniApp】-uni-app-处理项目输入数据(苹果计算器)

    前言 上一篇文章完成了项目的基本布局,这一篇文章我们来处理一下项目的输入数据 项目的输入数据主要是通过按键来输入的,所以我们需要对按键进行处理 那么我们就来看一下 uni-app-处理项目输入数据 步 ...

  9. 聊聊流式数据湖Paimon(二)

    当前的问题 Apache Paimon 最典型的场景是解决了 CDC (Change Data Capture) 数据的入湖:CDC 数据来自数据库.一般来说,分析需求是不会直接查询数据库的. 容易对 ...

  10. 数字孪生和GIS的融合能够为智慧水务带来什么帮助?

    数字孪生和地理信息系统(GIS)的融合在智慧水务领域有着重要的应用前景.让我们一起探讨数字孪生和GIS如何合作,为智慧水务系统带来了哪些帮助. GIS系统提供了准确的地理数据,包括水资源.管道网络.水 ...