QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#785391 | #6421. Degree of Spanning Tree | lfyszy | AC ✓ | 376ms | 22480kb | C++14 | 2.1kb | 2024-11-26 17:45:57 | 2024-11-26 17:45:57 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#define chmax(x, y) x = max(x, y)
#define chmin(x, y) x = min(x, y)
#define SP << " " <<
#define fish signed
using namespace std;
mt19937 rnd(1209);
const int INF = 0x3f3f3f3f3f3f3f3f;
const int N = 1e5 + 10;
vector<pair<int, int>> g;
vector<int> e[N];
int fa[N], fa1[N], d[N];
int find(int x) {return fa[x] == x ? x : fa[x] = find(fa[x]);}
set<pair<int, int>> edge;
void dfs(int u, int f)
{
fa1[u] = f; if(f) edge.insert({u, f});
for(auto v : e[u]) if(v != f) dfs(v, u);
}
void solve()
{
int n, m; cin >> n >> m;
for(int i = 1; i <= n; i ++) fa[i] = i, d[i] = 0, e[i].clear();
g.clear(); edge.clear();
for(int i = 1; i <= m; i ++)
{
int u, v; cin >> u >> v;
int fu = find(u), fv = find(v);
if(fu != fv)
{
fa[fu] = fv;
e[u].push_back(v), e[v].push_back(u);
d[u] ++, d[v] ++;
}
else g.push_back({u, v});
}
int rt = 0;
for(int i = 1; i <= n; i ++) if(d[i] > d[rt]) rt = i;
dfs(rt, 0);
for(int i = 1; i <= n; i ++) if(fa1[i] != rt) fa[i] = fa1[i]; else fa[i] = i;
for(auto x : g)
{
if(d[rt] <= n / 2) break;
int u = x.first, v = x.second;
int fu = find(u), fv = find(v);
if(fu == fv) continue;
if(d[fu] > d[fv]) swap(fu, fv), swap(u, v);
d[u] ++, d[v] ++, d[fv] --, d[rt] --;
if(d[u] > n / 2 || d[v] > n / 2) {d[u] --, d[v] --, d[fv] ++, d[rt] ++;continue;}
edge.erase({fv, rt});
edge.insert({v, u});
fa[fv] = fu;
}
rt = 0;
for(int i = 1; i <= n; i ++) if(d[i] > d[rt]) rt = i;
if(d[rt] <= n / 2)
{
cout << "Yes\n";
assert(edge.size() <= n - 1);
for(auto v : edge) cout << v.first SP v.second << "\n";
}
else cout << "No\n";
}
fish main()
{
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t; cin >> t;
while(t --) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 7400kb
input:
2 6 9 1 2 1 3 1 4 2 3 2 4 3 4 4 5 4 6 4 6 3 4 1 3 2 3 3 3 1 2
output:
Yes 2 1 3 1 4 1 5 4 6 4 No
result:
ok 2 cases
Test #2:
score: 0
Accepted
time: 181ms
memory: 10468kb
input:
11140 10 15 9 6 5 7 6 5 2 3 7 5 7 5 3 10 9 7 5 5 9 1 7 5 2 8 7 5 4 3 6 2 9 19 3 7 3 9 2 8 2 8 3 6 5 1 1 8 8 9 8 3 4 8 5 5 3 1 4 3 1 3 8 6 1 3 7 4 4 3 8 8 12 20 10 2 5 5 2 4 3 3 3 3 5 11 9 2 5 5 7 12 11 3 3 3 3 5 5 3 3 1 4 6 7 11 6 8 4 5 6 12 6 5 8 18 4 2 4 3 2 4 2 4 4 3 4 8 2 2 6 7 2 4 6 2 1 4 8 7 4...
output:
Yes 1 9 3 2 4 3 5 6 6 2 7 5 8 2 9 6 10 3 Yes 1 8 2 8 3 9 4 8 5 1 6 3 7 3 9 8 Yes 1 3 3 11 4 2 5 4 6 4 7 11 8 6 9 2 10 2 11 5 12 7 Yes 1 4 2 4 3 4 5 7 6 2 7 6 8 4 Yes 1 5 2 9 3 2 4 3 6 5 7 5 8 7 9 5 Yes 1 6 3 2 4 6 5 2 6 2 7 1 8 10 9 1 10 2 Yes 1 7 2 6 3 1 4 5 5 7 6 7 Yes 2 6 3 12 4 1 5 4 6 1 7 8 8 2...
result:
ok 11140 cases
Test #3:
score: 0
Accepted
time: 376ms
memory: 21628kb
input:
5 100000 197799 37555 22723 91160 32701 6451 4416 43186 26432 9750 82955 28292 33907 91534 78442 17771 67061 40351 28116 21494 23114 34672 66640 72636 95093 13033 6538 53698 87837 79541 71230 53985 63500 84753 5378 67971 56748 90951 20169 4465 97293 18331 53564 41043 95738 48579 96439 90865 7526 391...
output:
Yes 1 1295 2 23589 3 44515 4 92524 5 57297 6 86612 7 98458 8 48558 9 79888 10 10575 11 4168 12 2855 13 73256 14 58500 15 66799 16 7422 17 95854 18 74022 19 62023 20 18071 21 14097 22 26485 23 28817 24 74947 25 68588 26 94611 27 15137 28 81313 29 70880 30 879 31 18240 32 71835 33 69791 34 72903 35 55...
result:
ok 5 cases
Test #4:
score: 0
Accepted
time: 276ms
memory: 22480kb
input:
5 100000 100000 98195 31806 98195 70169 92153 98195 98195 46320 94369 56771 94369 49988 74295 98195 33796 98195 89903 94369 98195 1814 82388 98195 10189 94369 98195 6267 29845 98195 22425 94369 6241 98195 98195 33204 66516 98195 94369 71364 26277 94369 94369 94722 94369 25349 14629 98195 9329 98195 ...
output:
Yes 1 98195 2 98195 3 98195 4 94369 5 94369 6 98195 7 94369 8 98195 9 94369 10 98195 11 98195 12 94369 13 98195 14 94369 15 94369 16 94369 17 98195 18 98195 19 98195 20 94369 21 94369 22 94369 23 94369 24 94369 25 94369 26 94369 27 94369 28 94369 29 98195 30 94369 31 94369 32 98195 33 98195 34 94369...
result:
ok 5 cases
Test #5:
score: 0
Accepted
time: 374ms
memory: 22100kb
input:
5 100000 149998 50735 5447 50735 24875 15119 49666 50735 30352 44756 49555 26546 32695 98445 50735 71657 50735 92212 50735 50735 19382 30935 50735 43688 46767 54630 54562 31371 50735 48877 50735 78593 76833 74317 37258 50735 48236 67116 50735 36579 50735 37536 44353 50735 46602 35088 29568 86657 507...
output:
Yes 1 35019 2 50735 3 50735 4 50735 5 50200 6 22341 7 50735 8 2615 9 63844 10 50735 11 1279 12 50735 13 36941 14 50735 15 52058 16 50735 17 11154 18 99130 19 58578 20 6935 21 50735 22 52001 23 50735 24 50735 25 19097 26 50735 27 25550 28 81821 29 60031 30 31920 31 50735 32 50735 33 50735 34 50735 35...
result:
ok 5 cases
Test #6:
score: 0
Accepted
time: 186ms
memory: 20028kb
input:
11102 14 14 9 10 10 14 9 11 10 2 9 14 9 5 10 13 9 8 4 9 3 10 10 1 12 10 10 6 9 7 6 6 3 2 3 5 2 6 1 6 3 4 3 6 5 5 3 2 2 1 4 5 2 5 5 3 8 8 5 6 4 6 8 6 8 4 6 1 8 3 2 8 7 8 12 12 8 12 12 2 4 12 9 12 12 3 1 12 1 8 6 8 11 8 7 8 8 10 12 5 15 15 9 15 6 15 13 8 15 3 8 11 15 12 8 2 15 4 8 10 15 8 15 14 8 4 7 ...
output:
Yes 1 10 2 10 3 10 4 9 5 9 6 10 7 9 8 9 9 14 11 9 12 10 13 10 14 10 Yes 1 6 2 3 4 3 5 3 6 2 Yes 1 2 3 2 4 5 5 3 Yes 1 6 2 8 3 8 4 6 5 6 7 8 8 6 Yes 1 12 2 12 3 12 4 12 5 12 6 8 7 8 8 1 9 12 10 8 11 8 Yes 1 15 2 8 3 15 4 15 5 8 6 15 7 8 8 4 9 15 10 8 11 8 12 15 13 8 14 15 Yes 1 9 2 3 4 9 5 9 6 3 7 3 ...
result:
ok 11102 cases
Test #7:
score: 0
Accepted
time: 245ms
memory: 20440kb
input:
11102 14 19 9 3 3 6 8 3 2 14 7 3 11 3 13 9 3 14 3 5 2 3 7 4 1 10 13 3 4 3 3 1 3 10 12 8 11 6 3 12 11 15 9 11 10 7 1 2 9 6 11 2 11 10 8 11 11 5 3 8 11 4 11 3 11 7 1 11 5 4 6 11 5 6 1 2 4 3 3 5 1 3 5 4 3 2 12 16 8 11 12 10 12 3 5 7 12 5 1 12 9 4 12 2 6 12 12 8 10 1 12 11 7 12 12 9 3 2 4 12 6 7 3 1 6 3...
output:
Yes 1 3 2 14 4 7 5 3 6 11 7 3 8 3 9 3 10 1 11 3 12 8 13 9 14 3 Yes 1 2 2 11 3 8 4 5 5 11 6 9 7 10 8 11 9 11 10 11 Yes 1 3 2 1 4 5 5 3 Yes 1 10 2 3 3 12 4 9 5 12 6 12 7 5 8 12 9 12 10 12 11 8 Yes 1 5 2 3 4 3 5 3 6 4 Yes 2 5 3 4 4 1 5 1 6 1 Yes 1 2 2 6 3 6 4 6 5 7 7 6 8 9 9 6 10 3 11 4 Yes 1 5 2 5 3 5...
result:
ok 11102 cases
Test #8:
score: 0
Accepted
time: 118ms
memory: 8100kb
input:
100000 5 7 2 5 1 4 2 1 1 3 5 1 4 2 2 3 5 7 2 4 4 3 2 1 4 5 2 5 1 4 3 2 5 7 5 1 4 2 4 5 4 3 4 1 3 1 2 1 5 7 4 1 4 3 3 5 2 5 4 5 2 4 1 5 5 7 5 2 2 1 5 4 2 4 4 3 3 2 1 4 5 7 2 4 5 1 1 3 2 1 2 3 4 1 2 5 5 7 5 4 4 2 5 2 3 5 4 1 5 1 4 3 5 7 1 5 2 3 2 5 2 4 3 5 4 5 1 2 5 7 1 3 5 2 2 4 1 2 5 3 2 3 4 3 5 7 3...
output:
Yes 2 4 3 1 4 1 5 2 Yes 1 2 2 5 3 4 5 4 Yes 1 3 1 5 2 4 3 4 Yes 1 4 2 5 4 3 5 3 Yes 1 2 3 4 4 5 5 2 Yes 2 3 3 1 4 2 5 1 Yes 1 4 2 4 3 5 5 2 Yes 1 5 3 2 4 2 5 3 Yes 3 1 3 5 4 2 5 2 Yes 2 1 3 1 5 3 5 4 Yes 1 2 3 5 4 2 5 1 Yes 1 2 2 4 3 5 4 5 Yes 2 5 3 1 3 4 4 5 Yes 1 5 2 4 3 4 5 2 Yes 1 3 2 1 3 4 5 4 ...
result:
ok 100000 cases
Test #9:
score: 0
Accepted
time: 60ms
memory: 7044kb
input:
1000 5 970 3 1 4 3 3 1 1 3 2 3 2 3 3 2 2 3 2 3 2 3 3 2 3 2 3 1 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 3 2 2 3 2 3 3 5 2 3 2 3 2 3 3 2 3 2 5 3 2 3 3 2 2 3 3 2 3 2 3 1 3 2 3 5 3 2 2 1 2 3 3 5 2 3 2 3 5 3 3 2 3 1 3 2 3 2 1 3 4 3 3 1 4 3 5 3 3 2 3 4 2 3 3 5 2 3 3 1 3 2 2 3 4 3 2 3 2 3 1 3 3 1 2 3 3 2 3 2 2 3 2...
output:
Yes 1 2 2 5 4 3 5 3 Yes 1 3 2 5 4 3 5 4 Yes 1 5 3 5 4 2 4 3 Yes 1 4 2 4 3 5 5 1 Yes 1 3 2 5 4 3 5 1 Yes 2 3 3 1 4 2 5 1 Yes 1 2 1 5 3 4 5 4 Yes 2 1 3 1 4 2 5 4 Yes 2 4 3 1 3 5 5 4 Yes 2 5 3 1 4 2 5 1 Yes 2 3 4 1 4 5 5 3 Yes 1 4 2 5 3 5 4 3 Yes 1 2 3 2 4 1 5 4 Yes 2 1 2 3 3 5 4 5 Yes 1 3 1 4 3 2 5 2 ...
result:
ok 1000 cases
Test #10:
score: 0
Accepted
time: 103ms
memory: 6600kb
input:
100000 5 5 5 1 1 3 3 5 2 3 4 1 5 5 3 1 3 4 1 5 5 2 5 3 5 5 2 5 1 2 4 5 4 3 2 4 5 5 1 2 4 3 2 4 4 1 5 1 5 5 5 2 3 2 1 4 1 2 3 1 5 5 2 5 1 3 4 5 1 2 5 1 5 5 1 5 5 2 4 5 1 4 3 4 5 5 4 2 1 2 1 4 5 1 3 4 5 5 1 3 5 2 5 4 5 1 1 4 5 5 2 3 4 5 2 4 3 4 1 3 5 5 1 4 4 5 2 5 3 4 5 3 5 5 4 1 4 5 4 3 3 2 1 3 5 5 3...
output:
Yes 2 3 3 5 4 1 5 1 Yes 2 5 3 1 4 3 5 1 Yes 1 2 3 4 4 5 5 2 Yes 2 1 3 4 4 2 5 1 Yes 1 3 3 2 4 1 5 2 Yes 2 1 3 1 4 5 5 2 Yes 1 5 2 5 3 4 4 1 Yes 2 1 3 4 4 2 5 1 Yes 1 4 2 5 3 1 4 5 Yes 1 3 3 2 4 2 5 4 Yes 1 4 2 5 3 4 5 3 Yes 1 4 2 3 3 1 5 4 Yes 2 5 3 2 4 1 5 1 Yes 1 2 3 5 4 2 5 1 Yes 2 1 3 5 4 3 5 1 ...
result:
ok 100000 cases