QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#444573#8517. Interesting Pathsucup-team1198#AC ✓534ms120896kbC++201.7kb2024-06-15 20:11:012024-06-15 23:06:35

Judging History

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

  • [2024-06-15 23:06:35]
  • 管理员手动重测该提交记录
  • 测评结果:AC
  • 用时:534ms
  • 内存:120896kb
  • [2024-06-15 20:11:01]
  • 提交

answer

#include <map>
#include <set>
#include <array>
#include <cmath>
#include <deque>
#include <bitset>
#include <random>
#include <string>
#include <vector>
#include <cassert>
#include <complex>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>

using namespace std;

const int MAXN = 1'000'100;

vector<int> G[MAXN];
vector<int> GT[MAXN];

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);

  int n, m;
  cin >> n >> m;
  vector<pair<int, int>> edges(m);
  for (int i = 0; i < m; ++i) {
    int a, b;
    cin >> a >> b;
    --a;
    --b;
    edges[i] = make_pair(a, b);
    G[a].emplace_back(b);
    GT[b].emplace_back(a);
  }
  vector<bool> reached_from_last(n, false);
  reached_from_last[n - 1] = true;
  deque<int> Q;
  Q.emplace_back(n - 1);
  while (!Q.empty()) {
    int v = Q.front();
    Q.pop_front();
    for (int u : GT[v]) {
      if (!reached_from_last[u]) {
        reached_from_last[u] = true;
        Q.emplace_back(u);
      }
    }
  }
  if (!reached_from_last[0]) {
    cout << 0 << '\n';
    return 0;
  }
  vector<bool> reached_from_first(n, false);
  reached_from_first[0] = true;
  Q.emplace_back(0);
  while (!Q.empty()) {
    int v = Q.front();
    Q.pop_front();
    for (int u : G[v]) {
      if (!reached_from_first[u]) {
        reached_from_first[u] = true;
        Q.emplace_back(u);
      }
    }
  }
  int new_n = 0;
  int new_m = 0;
  vector<bool> good(n);
  for (int i = 0; i < n; ++i) {
    good[i] = reached_from_first[i] && reached_from_last[i];
    new_n += good[i];
  }
  for (auto [a, b] : edges)
    new_m += good[a] && good[b];
  cout << new_m - new_n + 2 << '\n';
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 3ms
memory: 3504kb

input:

5 7
1 3
3 5
1 2
2 3
3 4
4 5
2 4

output:

4

result:

ok 1 number(s): "4"

Test #2:

score: 0
Accepted
time: 2ms
memory: 3552kb

input:

5 3
1 3
2 3
2 5

output:

0

result:

ok 1 number(s): "0"

Test #3:

score: 0
Accepted
time: 2ms
memory: 3644kb

input:

2 0

output:

0

result:

ok 1 number(s): "0"

Test #4:

score: 0
Accepted
time: 2ms
memory: 3612kb

input:

2 1
1 2

output:

1

result:

ok 1 number(s): "1"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3644kb

input:

10 20
2 8
5 8
4 8
3 10
3 7
2 7
2 5
1 7
6 9
6 10
2 4
5 9
2 10
3 9
7 8
4 10
3 6
2 3
5 7
6 8

output:

0

result:

ok 1 number(s): "0"

Test #6:

score: 0
Accepted
time: 2ms
memory: 3612kb

input:

10 30
8 9
1 5
3 6
4 6
4 7
6 9
3 5
5 6
3 8
1 4
3 4
7 8
2 4
4 5
1 8
6 10
2 10
9 10
1 2
8 10
2 7
2 8
2 5
7 9
2 6
4 8
1 7
1 6
7 10
4 9

output:

19

result:

ok 1 number(s): "19"

Test #7:

score: 0
Accepted
time: 2ms
memory: 3788kb

input:

20 57
6 20
5 9
8 11
6 17
5 18
14 16
6 18
8 18
1 3
17 20
2 16
4 19
2 15
7 17
17 19
8 16
11 15
13 16
5 20
4 14
5 16
7 12
10 12
3 12
8 13
1 5
6 11
13 17
11 16
2 6
4 5
14 15
3 14
9 13
8 10
18 20
15 17
6 12
5 17
2 10
8 17
15 16
15 20
5 19
10 15
1 2
4 20
4 18
3 16
2 12
8 19
10 19
2 11
12 17
12 20
5 7
1 15

output:

21

result:

ok 1 number(s): "21"

Test #8:

score: 0
Accepted
time: 2ms
memory: 3612kb

input:

16 19
5 10
10 13
12 13
15 16
7 11
1 6
14 15
3 4
6 8
11 12
4 5
13 14
5 7
9 12
1 2
2 4
5 12
8 9
1 3

output:

5

result:

ok 1 number(s): "5"

Test #9:

score: 0
Accepted
time: 2ms
memory: 3772kb

input:

14 91
3 13
1 9
4 12
1 12
11 14
8 10
9 14
5 11
9 11
1 11
1 2
10 14
1 7
4 9
2 10
13 14
2 6
4 6
12 13
5 13
2 8
1 14
9 10
3 8
2 11
5 14
7 9
6 10
7 11
1 10
12 14
3 14
3 7
7 8
1 13
10 11
2 14
6 14
8 9
6 9
2 4
4 7
4 14
9 13
2 7
6 12
5 7
4 5
2 9
11 12
6 8
8 11
4 8
7 14
7 12
5 12
2 5
11 13
6 7
6 11
7 13
3 4
...

output:

79

result:

ok 1 number(s): "79"

Test #10:

score: 0
Accepted
time: 3ms
memory: 3936kb

input:

1000000 0

output:

0

result:

ok 1 number(s): "0"

Test #11:

score: 0
Accepted
time: 152ms
memory: 24692kb

input:

10000 1000000
3186 5896
193 9783
2762 3101
2793 5391
2587 9231
2991 6139
317 448
361 5290
7372 7580
279 2589
5476 7584
2829 3375
3785 8539
5898 7644
460 2025
2029 6959
1249 8686
1787 5348
840 7031
9515 9862
6122 9224
3911 5359
725 4062
985 5179
3337 4188
6961 8345
5325 6480
8308 9019
7827 9054
759 3...

output:

0

result:

ok 1 number(s): "0"

Test #12:

score: 0
Accepted
time: 385ms
memory: 92748kb

input:

1000000 1000000
227867 264986
543264 885751
368699 709020
126827 786083
15773 700372
582092 653193
597763 662903
24964 669822
118877 700066
650866 776787
264084 934355
104858 656657
393038 691935
254875 794624
349005 722140
77011 854592
264566 829978
395038 833643
180017 193646
28588 147277
71335 79...

output:

0

result:

ok 1 number(s): "0"

Test #13:

score: 0
Accepted
time: 162ms
memory: 47228kb

input:

1000000 1000000
277718 460482
147752 592243
672428 950124
290176 395254
169855 591213
23051 603108
683561 886805
369178 558263
15523 306646
851733 898093
16252 953612
195928 796663
298711 941197
807239 939884
477390 577792
177636 375148
199307 279986
171470 388424
864738 896318
520095 685892
281955 ...

output:

987489

result:

ok 1 number(s): "987489"

Test #14:

score: 0
Accepted
time: 113ms
memory: 48776kb

input:

1000000 500000
220011 331608
383898 452284
478455 598602
535465 835096
34781 509172
284635 653292
553793 686935
595558 905694
106231 182420
72160 205103
435467 474167
133438 709831
447900 993899
311233 441916
30052 897382
34200 490411
24306 365889
346868 769417
163206 392108
340962 818759
699298 730...

output:

442134

result:

ok 1 number(s): "442134"

Test #15:

score: 0
Accepted
time: 138ms
memory: 25336kb

input:

10000 1000000
769 5111
2621 5295
616 5384
603 9873
257 7962
4616 5977
4420 7963
1225 7007
5292 7230
6869 8661
5669 5714
7618 9925
2384 2393
1029 7575
3713 6965
1131 7793
6479 9949
5650 5880
6640 6735
4012 7870
6937 8667
3173 8439
1618 7794
1166 3266
4671 5333
3778 5189
1386 8839
1577 6482
764 7866
2...

output:

893098

result:

ok 1 number(s): "893098"

Test #16:

score: 0
Accepted
time: 197ms
memory: 26820kb

input:

25000 1000000
3286 13917
7601 14129
18179 21682
12738 14859
2310 11787
13237 13313
1403 20530
2019 12776
7246 21258
109 4285
1250 5654
3281 16015
4357 7111
509 5915
8595 11893
15252 17559
5074 7653
5468 21483
4532 20843
9827 24533
5902 23960
2056 5538
11183 12864
1648 9275
19962 23304
12806 18024
41...

output:

687486

result:

ok 1 number(s): "687486"

Test #17:

score: 0
Accepted
time: 359ms
memory: 73296kb

input:

1000000 1000000
145889 828965
101891 872944
306461 891194
479634 562124
460093 702806
434097 687914
868462 943584
522148 811696
202648 321281
413792 709955
9764 601279
257576 742047
310620 793868
444655 595009
47265 57177
277171 641024
281005 694629
508946 736418
264412 927342
33742 591190
274183 92...

output:

171017

result:

ok 1 number(s): "171017"

Test #18:

score: 0
Accepted
time: 439ms
memory: 92556kb

input:

1000000 1000000
987682 991819
630763 967194
682365 816105
15669 988580
649157 744816
777657 787054
515972 839941
428069 860906
127350 850842
91250 505765
522849 651379
194742 204624
71459 470879
181532 208277
330718 442774
486299 868372
186798 859668
474733 619379
997653 998142
758371 812576
407121 ...

output:

500000

result:

ok 1 number(s): "500000"

Test #19:

score: 0
Accepted
time: 437ms
memory: 120788kb

input:

1000000 999943
53949 54134
897043 897608
142382 142409
739225 740088
316622 317223
612614 612628
962920 963039
326871 327062
865159 865823
436490 437418
543160 544108
337346 337592
964581 964673
79918 80229
302781 302829
203405 203527
152922 152944
131508 132109
938757 939268
266846 266862
492730 49...

output:

3954

result:

ok 1 number(s): "3954"

Test #20:

score: 0
Accepted
time: 450ms
memory: 66888kb

input:

500251 1000000
9947 11131
89269 90762
138209 138334
35780 36236
324719 324911
155905 156017
302265 302981
230612 230795
179197 180540
413336 413824
382765 383223
242408 244400
186393 187212
323869 323912
471208 472286
486731 486805
69468 71026
439179 439816
231003 231616
390438 390831
445002 445640
...

output:

499751

result:

ok 1 number(s): "499751"

Test #21:

score: 0
Accepted
time: 402ms
memory: 116852kb

input:

963427 1000000
756122 756156
561525 561536
235985 236007
613316 613342
870234 870247
851771 851828
455702 455708
880636 880643
75192 75198
420611 420618
89553 89606
800364 800366
6742 6767
455571 455594
732558 732565
110656 110680
779653 779657
636588 636602
740997 741035
216394 216434
77384 77385
1...

output:

36575

result:

ok 1 number(s): "36575"

Test #22:

score: 0
Accepted
time: 489ms
memory: 113072kb

input:

1000000 1000000
558447 558448
407630 407633
213948 213949
198910 198912
698681 698682
707290 707292
14135 14137
40970 40978
463970 463971
951953 951956
535948 535949
290406 290410
979508 979509
358721 358722
727174 727176
546791 546792
858586 858589
570708 570709
678280 678283
440169 440170
577316 5...

output:

125011

result:

ok 1 number(s): "125011"

Test #23:

score: 0
Accepted
time: 500ms
memory: 105252kb

input:

1000000 1000000
86248 86251
532234 532235
495597 495599
438265 438267
968894 968895
472438 472440
999816 999818
295216 295217
874654 874655
323449 323454
119717 119718
48635 48636
241458 241460
323449 323450
94703 94706
951489 951490
291403 291404
875556 875557
49412 49414
209004 209005
809812 80981...

output:

250001

result:

ok 1 number(s): "250001"

Test #24:

score: 0
Accepted
time: 534ms
memory: 120896kb

input:

1000000 999999
401523 401524
707079 707080
520426 520427
129319 129320
730775 730776
691407 691408
471148 471149
189429 189430
424401 424402
707207 707208
154396 154397
759908 759909
412175 412176
805859 805860
909958 909959
150392 150393
907342 907343
417376 417377
601790 601791
724403 724404
35205...

output:

1

result:

ok 1 number(s): "1"

Test #25:

score: 0
Accepted
time: 92ms
memory: 24596kb

input:

1415 1000000
267 519
42 835
306 842
886 1412
700 1199
958 1293
92 487
193 1037
544 590
810 1363
229 607
206 1286
608 642
281 1224
720 1027
113 787
118 374
627 1097
175 1199
183 1121
18 1406
365 503
600 1202
287 981
180 398
870 1016
409 1155
864 1307
712 1309
65 582
39 60
5 541
787 1337
736 958
1202 ...

output:

998587

result:

ok 1 number(s): "998587"

Test #26:

score: 0
Accepted
time: 93ms
memory: 24544kb

input:

1414 998991
397 429
866 1016
409 1101
240 454
267 938
9 970
94 109
473 1311
767 1155
252 370
182 613
139 955
116 321
1066 1144
1011 1122
1247 1282
433 809
255 953
1313 1333
10 950
1058 1208
494 600
349 369
537 1012
123 1118
149 539
47 321
536 1096
223 875
547 562
26 317
1203 1245
956 1263
704 1072
2...

output:

997579

result:

ok 1 number(s): "997579"

Test #27:

score: 0
Accepted
time: 130ms
memory: 35036kb

input:

1000000 998991
234789 795210
91941 754122
747677 896007
344635 430364
599439 705004
120147 586537
73552 86709
209503 816560
436215 819408
600756 817215
301264 704189
163900 945551
115787 269217
37272 289783
200626 351053
277178 571637
235083 718740
82476 892729
413061 807263
366100 806564
195698 560...

output:

997579

result:

ok 1 number(s): "997579"

Test #28:

score: 0
Accepted
time: 132ms
memory: 35260kb

input:

1000000 1000000
368406 854062
619199 859849
228408 362095
513960 877053
801742 884339
222736 721090
41570 865619
800334 816559
63571 510218
159258 192195
840210 957865
743127 868555
207780 239075
138464 208672
105314 792016
391815 572706
43405 60814
233729 555289
661063 806616
645615 837773
323700 9...

output:

998587

result:

ok 1 number(s): "998587"

Extra Test:

score: 0
Extra Test Passed