ABC 442

C

没啥好讲的,用个数组记一下有利益冲突的就完事了。

1
2
3
4
5
6
7
8
9
cin >> n >> m;
for (int i = 1;i <= m;i++) {
cin >> a[i] >> b[i];
cnt[a[i]]++, cnt[b[i]]++;
}
for (int i = 1;i <= n;i++) {
if (n - cnt[i] - 1 < 3)cout << "0 ";
else cout << (n - cnt[i] - 1) * (n - cnt[i] - 2) * (n - cnt[i] - 3) / 6 << " ";
}

D

更水了,不就是树状数组板子吗

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
void Swap(int x) {
int now = a[x + 1] - a[x], noow = a[x] - a[x + 1];
add(x, now), add(x + 1, noow);
swap(a[x], a[x + 1]);
}

signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
for (int i = 1;i <= n;i++) {
cin >> a[i];
add(i, a[i]);
}
for (;q--;) {
int op, l, r, x;
cin >> op;
if (op == 1) {
cin >> x;
Swap(x);
}
else {
cin >> l >> r;
cout << sum(r) - sum(l - 1) << "\n";
}
}
return 0;
}

饭堂点:D 一开始用 ODT 写没优化 T 飞了。


ABC 442
http://example.com/2026/01/24/ABC-442/
作者
Cheese_zzz
发布于
2026年1月24日
许可协议