QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#877252 | #1351. Koosaga's Problem | gsn531 | RE | 1ms | 3968kb | C++26 | 1.7kb | 2025-01-31 20:37:58 | 2025-01-31 20:38:02 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define per(i, a, b) for(int i = (a); i >= (b); --i)
const int maxn = 2e3 + 5;
mt19937 rnd(time(0));
int n, M;
vector<int> e[maxn];
map<int, int> mp;
int dep[maxn], fa[maxn], tf[maxn], b[maxn], m, anc;
inline void dfs(int x){
dep[x] = dep[fa[x]] + 1;
for(int v : e[x]) if(!fa[v] and v != anc)
fa[v] = x, dfs(v);
}
inline void dfs2(int x){
for(int v : e[x]) if(fa[v] == x)
dfs2(v), tf[x] ^= tf[v];
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(NULL);
cin >> n >> M;
rep(i, 1, M){
int u, v; cin >> u >> v;
e[u].push_back(v), e[v].push_back(u);
}
rep(i, 1, n) if(!fa[i]) anc = i, dfs(i);
rep(u, 1, n) for(int v : e[u]) if(dep[v] > dep[u]){
if(fa[v] == u) continue;
int x = v; b[++m] = rnd();
tf[u] ^= b[m], tf[v] ^= b[m];
// while(x != u) tf[x] ^= b[m], x = fa[x];
}
rep(i, 1, n) if(!fa[i]) dfs2(i);
rep(i, 2, n) b[++m] = tf[i];
sort(b + 1, b + m + 1);
// rep(i, 1, m) cout << b[i] << " "; cout << '\n';
int res = 0;
rep(i, 1, m) res ^= b[i];
if(!res) return cout << 1 << '\n', 0;
for(int l = 1, r; l <= m; l = r + 1){
r = l;
while(r < m and b[r + 1] == b[l]) ++r;
if(b[l]) mp[b[l]] = r - l + 1;
}
if(mp.find(res) != mp.end()) return cout << mp[res] << '\n', 0;
int ans = 0;
for(auto [val, num] : mp) if(mp.find(res ^ val) != mp.end())
ans += num * mp[res ^ val];
ans /= 2ll;
// if(mp.find(res) != mp.end()) ans += mp[res];
cout << ans << '\n';
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3712kb
input:
3 2 1 2 2 3
output:
1
result:
ok answer is '1'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 6 1 2 1 3 1 4 2 3 2 4 3 4
output:
3
result:
ok answer is '3'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
5 9 1 2 1 3 1 4 2 3 2 4 2 5 3 4 3 5 4 5
output:
0
result:
ok answer is '0'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
12 16 1 2 2 3 3 4 4 1 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 5 1 5 2 7 3 9 4 11
output:
2
result:
ok answer is '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
3 3 1 2 2 3 3 1
output:
3
result:
ok answer is '3'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
6 9 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6
output:
1
result:
ok answer is '1'
Test #7:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
13 16 2 8 10 11 3 10 2 3 5 9 9 11 2 6 4 7 1 3 5 6 4 10 1 6 8 13 11 12 8 12 6 13
output:
3
result:
ok answer is '3'
Test #8:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
4 3 3 4 2 3 1 2
output:
1
result:
ok answer is '1'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 5 3 4 1 2 1 3 2 4 1 4
output:
1
result:
ok answer is '1'
Test #10:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
32 53 28 29 17 32 17 23 11 32 7 16 21 29 19 20 6 22 1 8 13 26 13 24 18 27 4 11 3 31 7 25 6 21 20 32 6 28 12 26 10 15 11 29 3 20 6 20 4 20 21 23 4 17 17 29 20 23 22 29 11 23 3 17 2 12 10 25 5 19 10 11 3 28 14 26 12 19 8 12 6 17 4 22 20 29 4 28 1 30 23 28 23 31 6 11 22 32 9 30 27 30 21 32 4 21 9 15
output:
9
result:
ok answer is '9'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 4 2 4 1 3 1 2 1 4
output:
3
result:
ok answer is '3'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1000 999 937 938 606 607 767 768 235 236 827 828 894 895 901 902 349 350 217 218 63 64 947 948 128 129 657 658 108 109 253 254 535 536 321 322 261 262 78 79 590 591 625 626 115 116 244 245 610 611 760 761 378 379 268 269 283 284 10 11 596 597 440 441 493 494 107 108 918 919 130 131 621 622 144 145 4...
output:
1
result:
ok answer is '1'
Test #13:
score: 0
Accepted
time: 1ms
memory: 3840kb
input:
1000 999 119 296 688 168 975 848 264 196 488 866 302 56 525 224 983 731 761 476 825 334 840 908 496 697 71 964 877 138 171 426 799 792 861 337 515 368 66 70 825 365 205 55 768 66 17 276 118 415 620 930 166 860 879 155 817 1 495 405 359 579 121 485 961 742 916 704 859 135 302 894 291 97 389 942 618 4...
output:
1
result:
ok answer is '1'
Test #14:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1000 999 680 809 34 44 243 877 355 589 273 691 458 643 193 464 198 632 478 570 320 457 309 866 636 721 181 475 278 565 567 616 138 490 335 554 293 663 246 769 765 769 148 694 384 406 689 712 84 879 268 418 239 806 376 827 247 862 576 848 309 926 140 886 750 989 240 701 347 599 227 599 369 441 187 39...
output:
1
result:
ok answer is '1'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1000 1176 133 835 227 953 33 449 196 934 171 587 659 790 256 605 72 393 438 601 599 922 177 221 28 84 156 782 17 48 49 302 198 613 142 154 156 601 788 898 295 431 714 982 374 990 394 539 45 837 73 340 203 371 46 239 159 621 26 424 193 249 623 777 43 184 257 308 582 994 419 420 237 895 373 963 206 58...
output:
6
result:
ok answer is '6'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1000 1339 451 789 544 936 344 681 87 823 381 404 734 917 427 956 731 802 78 928 21 201 521 783 685 845 526 850 37 124 94 749 222 449 122 463 97 606 26 787 251 806 644 771 39 778 90 924 259 1000 339 938 758 935 100 722 105 762 4 969 254 420 174 969 908 964 36 304 438 444 46 410 267 433 51 942 938 960...
output:
1
result:
ok answer is '1'
Test #17:
score: 0
Accepted
time: 1ms
memory: 3968kb
input:
1000 1802 298 921 626 905 238 766 63 715 257 513 417 926 288 548 414 791 63 220 674 815 327 931 863 977 539 845 25 922 540 570 746 751 504 971 73 238 22 220 166 599 386 970 27 777 478 760 177 380 238 425 425 665 74 143 78 363 5 528 169 814 112 760 449 487 25 761 296 759 34 78 180 782 34 503 453 841 ...
output:
825
result:
ok answer is '825'
Test #18:
score: 0
Accepted
time: 0ms
memory: 3968kb
input:
1000 1988 270 957 545 952 218 483 60 416 241 396 395 456 258 340 392 940 56 362 570 582 306 603 659 839 791 881 832 924 487 762 604 993 464 582 67 866 18 603 167 648 359 876 710 756 446 604 171 528 215 807 405 755 70 418 75 425 4 694 712 813 122 912 425 445 25 822 265 296 32 256 174 379 37 276 426 9...
output:
341
result:
ok answer is '341'
Test #19:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
1000 1032 593 809 799 834 878 896 154 226 625 931 92 334 9 812 878 348 817 948 335 874 38 215 331 978 306 997 614 573 661 614 459 38 6 625 220 364 145 682 435 876 891 601 200 244 228 407 743 915 28 612 174 372 579 730 313 347 445 717 702 836 938 983 655 704 955 981 272 988 123 332 165 305 866 939 14...
output:
422
result:
ok answer is '422'
Test #20:
score: 0
Accepted
time: 1ms
memory: 3840kb
input:
1000 1924 278 453 582 584 221 304 65 800 240 566 396 623 267 566 393 689 59 881 603 738 315 708 711 787 885 895 25 450 522 834 642 930 489 627 74 180 16 312 167 947 373 796 776 972 462 760 174 489 217 836 405 923 76 481 81 509 4 720 779 829 119 648 439 744 24 869 270 965 33 507 177 341 37 943 445 73...
output:
1
result:
ok answer is '1'
Test #21:
score: 0
Accepted
time: 1ms
memory: 3968kb
input:
1000 1991 274 347 551 797 218 772 57 468 235 442 388 740 258 961 387 513 52 289 574 876 304 348 669 746 780 872 820 909 500 646 621 744 477 857 62 979 19 688 159 350 361 528 719 821 452 583 166 633 217 261 398 587 65 190 69 405 2 794 723 751 110 890 421 637 26 306 268 514 33 212 169 339 36 225 424 9...
output:
1
result:
ok answer is '1'
Test #22:
score: 0
Accepted
time: 0ms
memory: 3968kb
input:
1000 1928 84 196 802 973 25 622 803 916 108 189 419 440 814 950 688 903 525 530 333 688 442 953 720 991 489 688 465 688 36 860 128 785 89 419 98 291 958 980 187 546 364 733 615 780 243 642 438 518 48 706 452 952 35 130 102 641 718 875 451 592 341 443 564 632 164 719 325 392 253 618 154 261 510 688 1...
output:
1
result:
ok answer is '1'
Test #23:
score: -100
Runtime Error
input:
100000 99999 89366 91622 12603 89366 86750 89366 8842 89366 14641 89366 41203 89366 31920 89366 89366 96734 28360 89366 48647 89366 85444 89366 75710 89366 36384 89366 6809 89366 89366 99332 32985 89366 48165 89366 57853 89366 73019 89366 32883 89366 20435 89366 63504 89366 46656 89366 57078 89366 6...