Codeforces Round 992 (Div. 2)题解
Created|Updated|Algorithm
|Word Count:6|Reading Time:1mins|Post Views:
A题
Author: Eysiking
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles
2025-03-12
Codeforces Round 1009(Div. 3)A~G题解
比赛链接 A题判断四个数是否相同即可: 12345678910void solve() { int a, b, c, d; cin >> a >> b >> c >> d; std::set<int> s{a, b, c, d}; if (s.size() == 1) { cout << "YES\n"; } else { cout << "NO\n"; }} B题对于边$x$,$y$,能构成三角形所能添加的最大边为$x+y-1$。累计加$n-1$次后,数列长度变为1,答案为$\sum_ia_i-n+1$。 123456789void solve() { int n; cin >> n; std::vector<int> a(n); for...
2024-12-01
Codeforces Round 989题解
比赛链接 A题给定两个整数$a$,$b$,寻找一个数$m$使得$m >= min(a, b) \wedge a \equiv b(\bmod m)$,易知隐含条件$m<=lcm(a, b)$,根据根据题目描述$a,b<=1000 \rightarrow lcm(a,b)<1e6$,枚举即可。 12345678910void solve() { int a, b; cin >> a >> b; for (int i = std::min(a, b); ; i++) { if (i % a == i % b) { cout << i << '\n'; return; } ...
2025-05-13
Codeforces Round 1024(Div. 2)D~F题解
比赛链接 D通过观察规则不难看出所有奇数位置数字和所有偶数位置数字是不互通的。尝试按照规则构造最小字典序序列,可以发现前 $n-3$ 个数字可以通过贪心构造出最小字典序,也就是奇数位置从小到大排列,偶数位置从小到大排列,这样构造之后得到的字典序一定最小,但是规则是一对奇偶位置一起交换,所以需要判断这样构造出来的序列是否合法,如果不合法,应该如何修改。 首先将奇偶位置分离开来分别构造一个数组,然后每次操作会发现,对于奇偶位置操作是相同的,也就是说逆序对相对数量不会发生变化,所以我们不妨直接按照下标进行排序,这样初始奇偶数列的下标的逆序对数量就是0,最后统计排序好的下标的逆序对数量差必须是偶数即可。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475i64 countInversions(std::vector<int> a) { ...
2024-12-06
Codeforces Round 991 (Div. 3)题解
画师:赤倉 题目链接:Codeforces Round 991 (Div. 3) A题123456789101112131415void solve() { int n, x; cin >> n >> x; int sum = 0, ans = 0; for (int i = 0; i < n; i++) { string s; cin >> s; sum += s.size(); if (sum <= x) { ans++; } } cout << ans <<...
2024-12-03
Codeforces Round 992题解A~D
比赛链接 A题先求前缀和,如果当前的和可以拼成一个完整的正方形,可以发现它必须是奇数$2k + 1,k\in N^{+}$的平方,直接判断即可。 1234567891011121314151617181920212223242526272829303132std::set<int> ms;void solve() { int n; cin >> n; std::vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; if (i) { a[i] += a[i - 1]; } } int ans = 0; for (int i = 0; i < n; i++) { if (ms.find(a[i]) != ms.end()) { ans++; ...
2024-12-18
Codeforces Round 993 (Div. 4)题解 (A~H)
题目链接 A题答案为$n-1$。 B题p变为q,q变为p,再反转即可。 C题贪心安排a,b只猴子能坐的数量,剩余位置分配给c。 123456void solve() { int a, b, c, m; cin >> m >> a >> b >> c; cout << std::min(a, m) + std::min(b, m) + std::min(2 * m - std::min(a, m) - std::min(b, m), c) << '\n';} D题由于数列$a$中所有数字均在$n$之内,且需要填的数列$b$也必须在$n$之内,那就让$b$中每个数字出现的模只出现一次,空缺用$a$中未出现的数字替代,可知一定不会有冲突的情况,一定可以按要求填满。 123456void solve() { int a, b, c, m; cin >> m >> a >> b...
Comments
Announcement
Updating...

