QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#721514 | #2514. Cable Protection | ucup-team5062# | AC ✓ | 79ms | 13540kb | C++17 | 1.3kb | 2024-11-07 16:16:52 | 2024-11-07 16:16:53 |
Judging History
answer
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int min_addition(int N, const vector<int>& A) {
vector<int> poses;
for (int i = 0; i < 2 * N; i++) {
if (A[i % N] == 1) {
poses.push_back(i);
}
}
int L = poses.size() / 2;
if (L == 0) {
return (N + 1) / 2;
}
int ans = 0;
for (int i = 0; i < L; i++) {
int d = poses[i + 1] - poses[i];
ans += (d - 1) / 2;
}
return ans;
}
int solve(int N, int M, const vector<vector<int> >& G) {
auto dfs = [&](auto& self, int x, int pre) -> pair<int, bool> {
int sum = 0;
bool use = false;
for (int i : G[x]) {
if (i != pre) {
pair<int, bool> subres = self(self, i, x);
sum += subres.first;
if (!subres.second) {
use = true;
}
}
}
sum += int(use);
return make_pair(sum, use);
};
vector<int> A(N);
int ans = 0;
for (int i = 0; i < N; i++) {
pair<int, bool> res = dfs(dfs, i, -1);
ans += res.first;
A[i] = int(res.second);
}
int subans = min_addition(N, A);
ans += subans;
return ans;
}
int main() {
int N, M;
cin >> N >> M;
vector<vector<int> > G(N + M);
for (int i = 0; i < N + M; i++) {
int a, b;
cin >> a >> b;
if (a >= N || b >= N) {
G[a].push_back(b);
G[b].push_back(a);
}
}
int ans = solve(N, M, G);
cout << ans << endl;
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3524kb
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: 3812kb
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: 3572kb
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: 4ms
memory: 3904kb
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: 42ms
memory: 8864kb
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: 3540kb
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: 3824kb
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: 3472kb
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: 3788kb
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: 79ms
memory: 13540kb
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: 3784kb
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: 3596kb
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: 3824kb
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: 20ms
memory: 6332kb
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: 3788kb
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: 3588kb
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'