QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#707330 | #2514. Cable Protection | becaido | AC ✓ | 45ms | 25412kb | C++20 | 1.9kb | 2024-11-03 15:32:11 | 2024-11-03 15:32:12 |
Judging History
answer
#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#ifdef WAIMAI
#define debug(HEHE...) cout<<"["<<#HEHE<<"] : ",dout(HEHE)
void dout(){cout<<'\n';}
template<typename T,typename...U>
void dout(T t,U...u){cout<<t<<(sizeof...(u)?", ":""),dout(u...);}
#else
#define debug(...) 7122
#endif
#define int long long
#define ll long long
#define Waimai ios::sync_with_stdio(false),cin.tie(0)
#define FOR(x,a,b) for(int x=a,I=b;x<=I;x++)
#define pb emplace_back
#define F first
#define S second
const int INF = 1e9;
const int SIZE = 2e5 + 5;
int n, m;
vector<int> adj[SIZE], cadj[SIZE];
int a[SIZE], dp[SIZE][2], cdp[SIZE][2];
bool vs[SIZE];
void dfs (int pos, int fa) {
dp[pos][1] = 1;
for (int np : adj[pos]) if (np != fa) {
dfs (np, pos);
dp[pos][0] += dp[np][1];
dp[pos][1] += min (dp[np][0], dp[np][1]);
}
}
void solve() {
cin >> n >> m;
FOR (i, 1, n + m) {
int a, b;
cin >> a >> b;
a++, b++;
if (max (a, b) > n) {
adj[a].pb (b);
adj[b].pb (a);
} else {
cadj[a].pb (b);
cadj[b].pb (a);
}
}
FOR (i, 1, n) dfs (i, i);
for (int i = 1, pos = 1; i <= n; i++) {
a[i] = pos;
vs[pos] = 1;
for (int np : cadj[pos]) if (!vs[np]) {
pos = np;
break;
}
}
int ans = INF;
auto work = [&]() {
cdp[1][0] = INF, cdp[1][1] = dp[a[1]][1];
FOR (i, 2, n) {
cdp[i][0] = dp[a[i]][0], cdp[i][1] = dp[a[i]][1];
cdp[i][0] += cdp[i - 1][1];
cdp[i][1] += min (cdp[i - 1][0], cdp[i - 1][1]);
}
return min (cdp[n][0], cdp[n][1]);
};
ans = min (ans, work());
reverse (a + 1, a + n + 1);
ans = min (ans, work());
cout << ans << '\n';
}
int32_t main() {
Waimai;
solve();
}
詳細信息
Test #1:
score: 100
Accepted
time: 2ms
memory: 7848kb
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: 1ms
memory: 5816kb
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: 2ms
memory: 7812kb
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: 3ms
memory: 8580kb
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: 20ms
memory: 13956kb
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: 2ms
memory: 7856kb
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: 2ms
memory: 7688kb
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: 7792kb
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: 1ms
memory: 7808kb
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: 45ms
memory: 25412kb
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: 2ms
memory: 7768kb
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: 7724kb
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: 2ms
memory: 7848kb
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: 14ms
memory: 14532kb
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: 7828kb
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: 2ms
memory: 7808kb
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'