QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#735526 | #9525. Welcome to Join the Online Meeting! | Foedere0 | WA | 172ms | 41256kb | C++20 | 3.5kb | 2024-11-11 20:31:51 | 2024-11-11 20:31:52 |
Judging History
answer
#include <bits/stdc++.h>
// #define endl '\n'
#define int long long
using namespace std;
typedef pair<int, int> PII;
const int N = 1000010;
int p[N], sz[N];
int a[N];
unordered_map<int, int> st;
int find(int x)
{
if (p[x] != x)
p[x] = find(p[x]);
return p[x];
}
vector<int> ans[N];
vector<int> res;
vector<int> r;
unordered_map<int, int> mp;
void solve()
{
int n, m, k;
cin >> n >> m >> k;
for (int i = 1; i <= n; i++)
{
p[i] = i;
sz[i] = 1;
ans[i].push_back(i);
}
for (int i = 1; i <= k; i++)
{
cin >> a[i];
st[a[i]] = 1;
}
vector<PII> op;
while (m--)
{
int x, y;
cin >> x >> y;
if (st[x] == 1 && !st[y])
{
st[x] = 2;
ans[y].push_back(x);
if (!mp[y])
{
mp[y] = 1;
r.push_back(y);
}
}
if (st[y] == 1 && !st[x])
{
st[y] = 2;
ans[x].push_back(y);
if (!mp[x])
{
mp[x] = 1;
r.push_back(x);
}
}
if (!st[y] && !st[x])
{
op.push_back({x, y});
}
}
int x = 0;
for (int i = 1; i <= n; i++)
{
if (!st[i])
{
x = i;
break;
}
}
if (x == 0)
{
cout << "No" << endl;
return;
}
int cnt = 0;
// sort(op.begin(), op.end());
int t = x;
for (auto [x, y] : op)
{
if (sz[find(x)] < sz[find(y)])
{
swap(x, y);
}
if (find(y) != find(x))
{
t = find(x);
if (!st[x])
{
st[x] = 1;
res.push_back(x);
}
// for (auto t : ans[y])
//{
// ans[x].push_back(t);
// }
ans[x].push_back(y);
sz[find(x)] += sz[find(y)];
p[find(y)] = find(x);
cnt++;
}
if (cnt == n - k - 1)
break;
}
if (cnt < n - k - 1)
{
cout << "No" << endl;
return;
}
for (int i = 1; i <= k; i++)
{
if (st[a[i]] != 2)
{
cout << "No" << endl;
return;
}
}
cout << "Yes" << endl;
for (auto x : r)
{
if (!st[x])
{
st[x] = 1;
res.push_back(x);
}
}
// cout << t << endl;
queue<int> heap;
heap.push(t);
cnt = 0;
while (!heap.empty())
{
cnt++;
int o = heap.front();
// cout << o << endl;
heap.pop();
for (auto p : ans[o])
{
if (p == o)
continue;
if (ans[p].size() > 1)
heap.push(p);
}
}
cout << cnt << endl;
heap.push(t);
while (!heap.empty())
{
cnt++;
int o = heap.front();
heap.pop();
cout << o << " ";
cout << ans[o].size() - 1 << " ";
for (auto p : ans[o])
{
if (p == o)
continue;
cout << p << " ";
if (ans[p].size() > 1)
heap.push(p);
}
cout << endl;
}
}
signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T = 1;
// cin >> T;
while (T--)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 9804kb
input:
4 5 2 3 4 1 2 1 3 2 3 3 4 2 4
output:
Yes 2 1 2 3 2 2 1 4
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 10012kb
input:
4 5 3 2 4 3 1 2 1 3 2 3 3 4 2 4
output:
No
result:
ok ok
Test #3:
score: 0
Accepted
time: 3ms
memory: 9764kb
input:
4 6 2 3 4 1 3 1 4 2 3 2 4 1 2 3 4
output:
Yes 1 1 3 3 4 2
result:
ok ok
Test #4:
score: 0
Accepted
time: 2ms
memory: 9764kb
input:
6 6 0 1 2 2 3 3 1 4 5 5 6 6 4
output:
No
result:
ok ok
Test #5:
score: 0
Accepted
time: 148ms
memory: 40592kb
input:
200000 199999 2 142330 49798 49798 116486 116486 64386 64386 192793 192793 61212 61212 138489 138489 83788 83788 89573 89573 8596 8596 156548 156548 41800 41800 14478 14478 27908 27908 82806 82806 9353 9353 160166 160166 92308 92308 36265 36265 126943 126943 190578 190578 191148 191148 177381 177381...
output:
Yes 199998 116486 2 49798 64386 64386 1 192793 192793 1 61212 61212 1 138489 138489 1 83788 83788 1 89573 89573 1 8596 8596 1 156548 156548 1 41800 41800 1 14478 14478 1 27908 27908 1 82806 82806 1 9353 9353 1 160166 160166 1 92308 92308 1 36265 36265 1 126943 126943 1 190578 19057...
result:
ok ok
Test #6:
score: 0
Accepted
time: 172ms
memory: 37984kb
input:
199999 199998 1 136702 159826 166341 166341 59559 59559 169672 169672 102084 102084 136269 136269 57057 57057 59116 59116 119963 119963 85663 85663 33942 33942 84604 84604 189395 189395 154906 154906 22175 22175 144902 144902 198523 198523 35993 35993 35690 35690 47504 47504 104458 104458 68253 6825...
output:
Yes 199998 159826 1 166341 166341 1 59559 59559 1 169672 169672 1 102084 102084 1 136269 136269 1 57057 57057 1 59116 59116 1 119963 119963 1 85663 85663 1 33942 33942 1 84604 84604 1 189395 189395 1 154906 154906 1 22175 22175 1 144902 144902 1 198523 198523 1 35993 35993 1 35690 ...
result:
ok ok
Test #7:
score: 0
Accepted
time: 171ms
memory: 41256kb
input:
199998 199997 0 67665 130538 130538 101337 101337 73749 73749 138128 138128 1274 1274 108069 108069 50961 50961 7039 7039 109946 109946 170551 170551 193330 193330 113590 113590 92775 92775 2146 2146 43591 43591 125033 125033 75583 75583 173991 173991 46820 46820 3986 3986 163272 163272 91657 91657...
output:
Yes 199997 67665 1 130538 130538 1 101337 101337 1 73749 73749 1 138128 138128 1 1274 1274 1 108069 108069 1 50961 50961 1 7039 7039 1 109946 109946 1 170551 170551 1 193330 193330 1 113590 113590 1 92775 92775 1 2146 2146 1 43591 43591 1 125033 125033 1 75583 75583 1 173991 173991...
result:
ok ok
Test #8:
score: 0
Accepted
time: 68ms
memory: 37912kb
input:
199997 199996 1 158877 35837 79489 79489 72932 72932 14238 14238 73007 73007 66909 66909 49015 49015 129581 129581 138449 138449 94774 94774 189625 189625 23578 23578 31043 31043 146625 146625 161587 161587 136966 136966 184859 184859 27587 27587 155616 155616 72392 72392 195320 195320 75551 75551 1...
output:
No
result:
ok ok
Test #9:
score: 0
Accepted
time: 47ms
memory: 33908kb
input:
200000 199999 1 29111 29111 80079 29111 131587 29111 197066 29111 125194 29111 156736 50697 29111 29111 74382 113595 29111 29111 26046 29111 172868 178564 29111 174875 29111 93471 29111 88216 29111 29111 147893 29111 145746 29111 34038 146500 29111 67862 29111 29111 19222 29111 121535 29111 49102 29...
output:
No
result:
ok ok
Test #10:
score: 0
Accepted
time: 71ms
memory: 38160kb
input:
199999 199998 2 52512 104330 130511 66864 139434 66864 92884 66864 66864 185580 184115 66864 137395 66864 66864 43463 118395 66864 111697 66864 66864 133237 66864 112507 66864 140264 66864 10 66864 151082 155779 66864 107988 66864 148839 66864 66864 40909 172685 66864 66864 189374 180054 66864 49 66...
output:
Yes 2 130511 1 66864 66864 199997 52512 104330 139434 92884 185580 184115 137395 43463 118395 111697 133237 112507 140264 10 151082 155779 107988 148839 40909 172685 189374 180054 49 41830 19259 186287 41932 21357 66485 95229 126195 72801 154651 48615 111519 156500 156919 60203 11260 164641 168543 ...
result:
ok ok
Test #11:
score: 0
Accepted
time: 61ms
memory: 40220kb
input:
199998 199997 0 77056 67665 130538 77056 77056 101337 73749 77056 77056 138128 1274 77056 77056 108069 50961 77056 77056 7039 77056 109946 77056 170551 193330 77056 113590 77056 77056 92775 2146 77056 43591 77056 77056 125033 75583 77056 173991 77056 46820 77056 77056 3986 77056 163272 91657 77056 ...
output:
Yes 1 77056 199997 67665 130538 101337 73749 138128 1274 108069 50961 7039 109946 170551 193330 113590 92775 2146 43591 125033 75583 173991 46820 3986 163272 91657 92212 191670 170218 149297 164182 6856 61891 95065 7257 47282 126716 84031 52189 32847 63118 134126 143246 30142 58215 3315 175496 98119...
result:
ok ok
Test #12:
score: 0
Accepted
time: 49ms
memory: 9888kb
input:
1000 499500 999 458 720 932 821 847 788 447 593 430 896 257 238 380 924 968 30 389 306 278 824 83 342 329 513 476 313 714 348 602 105 758 777 663 1000 20 756 546 256 123 340 69 244 772 625 390 557 911 272 496 127 409 436 845 574 958 921 24 17 770 630 851 147 178 976 77 181 230 723 974 345 501 683 24...
output:
Yes 1 987 999 516 5 990 603 581 613 664 339 669 702 571 159 399 397 347 481 43 709 916 191 33 517 178 751 897 868 687 155 993 78 378 865 108 677 382 158 937 496 4 541 398 367 237 825 364 518 679 578 199 566 180 894 275 273 305 805 933 524 30 576 707 437 38 513 762 56 349 785 186 461 15 44 991 366 42...
result:
ok ok
Test #13:
score: -100
Wrong Answer
time: 43ms
memory: 10076kb
input:
1000 499000 765 622 257 281 601 593 967 704 173 609 700 782 592 356 595 431 307 933 886 213 478 8 832 877 606 335 253 420 631 345 179 961 437 238 641 513 997 192 483 152 951 580 331 401 122 155 814 228 633 372 918 346 464 3 992 416 953 650 668 971 899 76 575 880 85 194 541 26 348 93 815 554 64 850 5...
output:
Yes 43 494 9 487 263 242 532 121 133 672 195 369 532 6 331 321 540 668 599 51 121 3 259 482 689 133 2 635 968 672 2 175 907 195 2 233 812 369 3 734 834 847 599 4 170 237 776 807 51 3 839 791 260 847 3 732 341 798 776 5 400 570 55 52 8 807 4 506 499 223 803 260 5 177 81 229 280 800 798 2...
result:
wrong answer member 1 is not invited