Codeforces Round 904 (Div. 2)

D 题有点难,数论确实不会,本着只是为了练习回复脑子的角度考虑,就不写了

A. Simple Design

大致题意

有两值,$x, k$,找到最小的 $y$ 满足 $y \geq x, y \space mod \space k = 0$

思路

因为 $k$ 很小,所以暴力枚举就行

AC code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void solve() {
int _;
cin >> _;
for (int ts = 0; ts < _; ++ts) {
int x, k;
cin >> x >> k;

auto cal = [&](int x) {
int ans = 0;
while (x) {
ans += x % 10;
x /= 10;
}
return ans;
};

while (true) {
int tmp = cal(x);
if (tmp % k == 0) {
cout << x << endl;
break;
}
x++;
}
}
}

B. Haunted House

大致题意

有一个 $01$ 字符串,每次允许交换两个相邻的值,问交换多少次,就可以是 $2^i$ 的倍数(对于所有可能的 $i$)

思路

都告诉你二进制了,保证最后几个为 $0$ 的方案而已,简单模拟一下就行了

AC code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define int long long

void solve() {
string str;
str.reserve(1e5);

int _;
cin >> _;
for (int ts = 0; ts < _; ++ts) {
int n;
cin >> n >> str;
int l = (int) str.size(), ans = 0;
for (int r = (int) str.size() - 1; r >= 0; --r) {
l--;
while (l >= 0 && str[l] == '1') l--;
if (l >= 0) ans += r - l;
if (l < 0) cout << -1 << ' ';
else cout << ans << ' ';
}
cout << endl;
}
}

C. Medium Design

大致题意

有一堆区间,可以选出其中一部分,对这些区间内的值 +1 问这样操作之后的区间的最大值降去最小值的最大差值可以是多少

思路

排序一下,然后遍历,因为最小值一定出现在第一个值或者最后一个值

AC code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
vector<pair<int, int>> v;

void solve() {
int _;
cin >> _;
for (int ts = 0; ts < _; ++ts) {
int n, m;
cin >> n >> m;
v.resize(n);
for (auto &i: v) cin >> i.first >> i.second;

struct cmp {
bool operator()(const int &lhs, const int &rhs) const {
return v[lhs].second > v[rhs].second;
}
};

priority_queue<int, vector<int>, cmp> prq;
sort(v.begin(), v.end());

int l = 0, r = 0, cur = 0, ans = 0;
for (int i = 0; i < v.size(); ++i) {
auto &item = v[i];
prq.push(i);
cur++;
if (item.first <= 1) l++;
if (item.second >= m) r++;
while (!prq.empty()) {
if (v[prq.top()].second < item.first) {
if (v[prq.top()].first <= 1) l--;
prq.pop();
cur--;
} else break;
}
ans = max(ans, max(cur - l, cur - r));
}
cout << ans << endl;
}
}

Codeforces Round 904 (Div. 2)
https://blog.mauve.icu/2023/11/25/acm/codeforces/CodeforcesRound904/
作者
Shiroha
发布于
2023年11月25日
许可协议