QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#877252#1351. Koosaga's Problemgsn531RE 1ms3968kbC++261.7kb2025-01-31 20:37:582025-01-31 20:38:02

Judging History

你现在查看的是最新测评结果

  • [2025-01-31 20:38:02]
  • 评测
  • 测评结果:RE
  • 用时:1ms
  • 内存:3968kb
  • [2025-01-31 20:37:58]
  • 提交

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...

output:


result: