QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#729525 | #2514. Cable Protection | ucup-team5226# | AC ✓ | 30ms | 15808kb | C++20 | 1.7kb | 2024-11-09 17:16:42 | 2024-11-09 17:16:49 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vl = vector<ll>;
using sl = set<ll>;
#define ov4(a, b, c, d, name, ...) name
#define rep3(i, a, b, c) for (ll i = (a); i < (b); i += (c))
#define rep2(i, a, b) rep3(i, a, b, 1)
#define rep1(i, n) rep2(i, 0, n)
#define rep0(n) rep1(aaaaa, n)
#define rep(...) ov4(__VA_ARGS__, rep3, rep2, rep1, rep0)(__VA_ARGS__)
#define all(v) v.begin(), v.end()
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vc<vc<T>>;
void solve() {
ll n, m;
cin >> n >> m;
vvc<ll> g(n + m);
vc<ll> done(n);
rep(i, n + m) {
ll u, v;
cin >> u >> v;
if (u < n and v < n) continue;
g[u].push_back(v);
g[v].push_back(u);
}
ll res = 0;
vc<ll> dp(n + m);
auto dfs = [&](auto&& dfs, ll from, ll par) -> void {
for (auto to : g[from]) {
if (to == par) continue;
dfs(dfs, to, from);
}
if (dp[from] == false and par != -1) dp[par] = 1;
if (from < n) {
if (dp[from]) {
done[from] = true;
}
}
};
rep(i, n) {
dfs(dfs, i, -1);
}
rep(i, n + m) res += dp[i];
vc<ll> idx;
rep(i, n) if (done[i]) idx.push_back(i);
if (idx.empty()) {
res += (n + 1) / 2;
} else {
idx.push_back(idx[0] + n);
ll sz = idx.size();
rep(i, 1, sz) res += (idx[i] - idx[i - 1] -1) / 2;
}
cout << res << endl;
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cout << fixed << setprecision(20);
ll t = 1;
// cin >> t;
rep2(_, 0, t) solve();
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3544kb
input:
3 2 0 1 1 2 0 2 1 3 2 4
output:
2
result:
ok single line: '2'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
5 5 0 1 1 2 2 3 3 4 0 4 0 5 1 6 2 7 3 8 4 9
output:
5
result:
ok single line: '5'
Test #3:
score: 0
Accepted
time: 1ms
memory: 3672kb
input:
700 300 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
446
result:
ok single line: '446'
Test #4:
score: 0
Accepted
time: 2ms
memory: 4264kb
input:
4000 6000 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 ...
output:
4129
result:
ok single line: '4129'
Test #5:
score: 0
Accepted
time: 16ms
memory: 10052kb
input:
100 99900 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 ...
output:
40317
result:
ok single line: '40317'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
4 11 0 1 0 3 0 4 0 6 1 2 1 9 2 10 2 3 4 5 6 7 7 8 10 11 10 13 11 12 13 14
output:
7
result:
ok single line: '7'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
4 11 0 1 0 3 0 4 0 5 1 2 1 6 2 3 2 9 3 12 6 7 6 8 9 10 10 11 12 13 12 14
output:
5
result:
ok single line: '5'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
4 11 0 1 0 3 0 4 0 6 1 2 1 9 2 10 2 3 4 5 6 7 7 8 10 11 10 13 11 12 13 14
output:
7
result:
ok single line: '7'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
4 11 0 1 0 3 0 4 0 5 1 2 1 6 2 3 2 9 3 12 6 7 6 8 9 10 10 11 12 13 12 14
output:
5
result:
ok single line: '5'
Test #10:
score: 0
Accepted
time: 30ms
memory: 15808kb
input:
100000 100000 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51...
output:
84571
result:
ok single line: '84571'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
125 375 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 52...
output:
205
result:
ok single line: '205'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
3 2 0 1 1 2 0 2 1 3 2 4
output:
2
result:
ok single line: '2'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
4 1 0 1 1 2 2 3 0 3 1 4
output:
2
result:
ok single line: '2'
Test #14:
score: 0
Accepted
time: 4ms
memory: 7040kb
input:
30001 30000 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 5...
output:
25437
result:
ok single line: '25437'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
6 1 0 1 1 2 2 3 3 4 4 5 0 5 0 6
output:
3
result:
ok single line: '3'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
7 1 0 1 1 2 2 3 3 4 4 5 5 6 0 6 0 7
output:
4
result:
ok single line: '4'