QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#351234#5173. 染色zzafanti0 829ms120540kbC++231.1kb2024-03-11 19:02:262024-03-11 19:02:26

Judging History

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

  • [2024-03-11 19:02:26]
  • 评测
  • 测评结果:0
  • 用时:829ms
  • 内存:120540kb
  • [2024-03-11 19:02:26]
  • 提交

answer

#include<bits/stdc++.h>

using namespace std;
using E=long long;

int main(){

#ifdef zzafanti
  freopen("in.in","r",stdin);
#endif // zzafanti

  cin.tie(nullptr),cout.tie(nullptr)->sync_with_stdio(false);

  int n,Q;
  cin>>n>>Q;

  vector<int> a(n+1),nxt(n+1),lst(n+1,n+1);

  unordered_set<int> st;
  for(int i=1; i<=n; i++){
    cin>>a[i];
    st.insert(a[i]);
  }
  int K=(int)(__lg(n))-4; K=max(K,2);
  if(st.size()<=3u) K+=4;
  vector<vector<int>> fa(n+2,vector<int>(K));
  vector<int> dep(n+2);
  for(int i=0; i<K; i++) fa[n+1][i]=n+1;

  int now=n;
  dep[n+1]=0;
  for(int i=n; i; i--){
    nxt[i]=lst[a[i]];
    if(nxt[i]<nxt[now]){
      now=i;
    }
    lst[a[i]]=i;
    fa[i][0]=nxt[now];
    dep[i]=dep[fa[i][0]]+1;
  }

  for(int j=1; j<K; j++){
    for(int i=1; i<=n; i++){
      fa[i][j]=fa[fa[i][j-1]][j-1];
    }
  }

  while(Q--){
    int l,r;
    cin>>l>>r;
    if(l>r) swap(l,r);
    int ans=2*(r-l);
    for(int i=K-1; ~i; i--){
      if(fa[l][i]<=r){
        l=fa[l][i];
        ans-=(1<<i);
      }
    }
    cout<<ans<<'\n';
  }

  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 4232kb

input:

10000 100
84 85 52 2 78 53 20 21 23 76 37 44 18 5 37 8 81 65 46 58 69 1 69 37 53 46 37 35 35 89 1 77 35 6 46 59 89 46 25 55 50 38 61 67 44 23 29 24 46 4 42 15 34 77 20 34 83 79 12 50 69 26 38 14 9 66 80 72 22 26 9 68 35 38 19 84 92 30 83 62 100 71 81 60 7 37 64 50 33 60 86 75 45 78 32 53 3 48 87 60 ...

output:

3668
4575
5976
8382
729
7013
183
7320
492
1140
253
2249
13281
6254
456
7507
2162
10481
1791
2675
4801
293
5997
627
6654
6179
11414
2712
3157
7836
18031
511
5486
18087
9564
6147
4996
14697
670
463
15775
12705
8872
7833
10987
6603
6399
5023
9102
8529
2173
10299
2694
12571
4958
2144
8809
1907
6476
2828...

result:

wrong answer 13th words differ - expected: '13226', found: '13281'

Subtask #2:

score: 0
Wrong Answer

Test #7:

score: 13
Accepted
time: 75ms
memory: 14920kb

input:

100000 100000
3 2 3 3 3 3 2 3 2 1 3 1 1 1 3 2 1 3 1 2 2 1 3 1 2 2 1 1 1 3 2 1 3 3 3 3 1 1 1 2 3 3 2 1 1 1 3 1 3 1 3 2 1 3 2 3 3 2 3 3 2 3 3 3 3 3 2 3 2 3 1 3 3 3 3 3 3 3 1 2 3 3 1 3 1 1 2 2 3 1 1 2 3 2 3 1 3 2 1 3 2 3 2 1 1 3 3 1 3 1 2 2 2 3 2 3 2 3 2 1 1 3 1 3 2 2 3 3 3 1 2 2 3 3 2 1 3 1 2 2 2 3 2 ...

output:

113194
133099
54921
6483
9199
78290
93920
29192
38941
111588
66619
7226
66019
42776
44640
49274
11102
107722
71676
10708
4735
87161
46860
75805
27270
10951
12237
59513
18641
55105
11626
7850
5521
38727
67276
58326
16941
70130
70341
53673
51864
551
18481
119885
4016
43296
62515
33972
9870
24982
33222...

result:

ok 100000 tokens

Test #8:

score: 0
Accepted
time: 72ms
memory: 14904kb

input:

100000 100000
2 3 2 2 2 1 2 1 2 1 2 2 3 3 3 2 1 2 1 1 3 3 3 1 3 1 1 1 2 2 1 1 3 3 3 2 2 2 1 3 3 3 3 3 3 2 1 3 2 1 3 3 1 1 1 2 3 1 1 3 3 2 1 1 2 2 2 1 3 1 1 3 2 2 1 2 2 3 2 1 1 1 1 1 1 2 2 3 3 2 1 3 3 2 3 2 1 2 3 3 1 3 1 3 3 1 3 3 1 3 1 1 3 2 3 2 2 2 1 3 2 1 2 1 2 3 3 3 3 3 1 2 2 2 2 1 2 2 3 3 1 2 3 ...

output:

26713
92501
21509
49442
97641
78683
141125
77139
85866
63249
94772
69580
92232
51238
68375
24225
33431
945
69079
81415
89436
46535
15964
5588
93083
42072
99191
79445
79452
91055
38537
37616
422
72269
18476
82679
19235
10612
8002
12362
35849
66190
71653
93753
68380
17858
100447
115325
114262
29272
91...

result:

ok 100000 tokens

Test #9:

score: 0
Accepted
time: 71ms
memory: 14996kb

input:

100000 100000
2 1 1 1 1 1 3 1 3 1 1 1 1 1 3 2 1 1 1 2 3 3 3 3 2 1 2 3 3 2 3 3 2 1 1 1 2 3 2 3 1 1 2 2 2 1 3 3 1 3 3 3 2 2 1 1 1 1 1 3 1 1 2 3 3 3 1 3 3 1 1 1 3 2 3 2 1 1 3 2 2 3 1 2 3 3 2 2 2 2 1 2 3 3 3 1 1 1 3 3 3 2 2 3 1 3 3 3 1 1 1 2 1 3 2 1 1 1 2 2 1 3 2 3 2 1 2 1 1 2 1 3 3 3 1 2 3 3 1 2 3 1 1 ...

output:

80639
35808
47971
6829
13146
13817
26698
27049
645
41874
8900
10110
49884
79227
31064
124997
120224
119988
19203
69267
15180
24295
112608
78787
9713
51263
7039
14760
79569
68042
18132
29324
42684
87131
52903
5361
1980
146285
95921
36987
7182
76523
34491
20411
5262
99211
5426
115946
70902
61447
17419...

result:

ok 100000 tokens

Test #10:

score: 0
Accepted
time: 68ms
memory: 15000kb

input:

100000 100000
1 1 3 1 3 2 1 1 2 2 1 2 1 2 2 1 3 3 3 1 3 1 3 2 2 1 3 3 3 1 1 3 3 1 3 2 1 2 2 3 1 1 2 1 2 1 1 2 2 1 2 1 1 2 1 3 3 3 1 3 3 3 2 3 1 2 2 3 2 1 3 2 3 2 1 2 1 2 3 1 2 1 1 1 2 1 1 3 1 1 2 2 1 1 2 1 3 3 2 2 1 1 2 2 3 2 3 1 1 2 2 3 3 1 1 2 1 1 2 3 2 3 2 3 3 3 2 3 1 3 2 2 3 2 3 2 2 1 3 3 1 2 1 ...

output:

38914
124419
25224
129215
32037
25575
62618
95520
22272
59239
29749
68889
103029
33972
4568
74859
114913
100546
51067
49206
49109
51661
41339
9719
64962
11110
16135
87092
65934
104569
61632
47720
14030
33785
20259
34555
69260
77538
8434
13773
58838
30772
30535
107145
4075
30415
88009
44581
24535
557...

result:

ok 100000 tokens

Test #11:

score: 0
Accepted
time: 61ms
memory: 14892kb

input:

100000 100000
2 2 2 3 2 1 1 3 2 3 1 1 3 1 1 2 2 1 2 3 3 3 1 3 1 3 3 1 1 2 1 2 3 2 1 2 2 2 3 2 3 1 3 3 3 2 2 2 1 3 3 1 2 1 3 1 2 2 2 1 2 1 3 3 2 1 3 2 1 2 2 1 3 3 2 2 2 1 2 2 2 2 2 1 2 3 3 3 3 1 1 1 2 1 2 2 1 3 1 1 2 1 1 2 3 2 3 2 3 2 3 1 3 3 2 1 3 1 3 2 3 1 3 1 1 3 1 1 1 1 3 1 3 1 1 1 1 3 1 2 1 1 3 ...

output:

30863
18
28518
72686
68011
26355
45471
35775
65310
90667
88521
55374
31885
17730
81081
30936
26897
57441
72204
23430
10024
26381
25825
44964
61567
107852
44692
63770
28209
44337
8455
6079
55198
40525
51253
59429
4115
59772
25858
18511
36125
78750
97180
76379
15614
41214
98595
94157
24511
87049
2599
...

result:

ok 100000 tokens

Test #12:

score: -13
Wrong Answer
time: 71ms
memory: 14940kb

input:

100000 100000
2 1 2 1 2 2 2 1 2 1 1 2 2 2 2 1 2 1 1 2 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1 1 2 1 1 1 2 1 2 2 2 1 1 1 2 2 2 2 2 2 1 1 1 2 1 2 2 2 1 2 2 1 1 2 1 1 1 2 2 2 1 2 1 2 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 1 2 1 2 2 2 2 1 1 2 1 2 1 2 2 1 2 2 2 1 1 2 1 1 2 1 2 1 2 1 1 1 1 1 2 1 2 2 2 2 2 2 1 1 2 2 1 1 2 2 ...

output:

126674
35064
19688
42938
32923
73478
59317
35848
61596
99358
38767
18343
8304
23853
24418
4306
80731
60167
34465
70750
19821
8126
78318
77946
42808
2449
114187
26181
86118
30068
48364
71942
42548
42121
127256
69352
33720
57717
23546
4565
78495
27559
89685
25719
53280
16094
7529
38295
69744
15071
101...

result:

wrong answer 4141st words differ - expected: '131410', found: '131517'

Subtask #3:

score: 0
Wrong Answer

Test #15:

score: 18
Accepted
time: 0ms
memory: 3692kb

input:

5000 5000
256 63 197 36 75 66 33 72 27 75 66 248 29 166 209 252 141 95 84 226 147 249 116 94 192 256 199 273 182 166 116 274 27 211 154 144 283 23 53 110 215 11 164 284 161 221 251 96 43 47 18 115 12 51 156 61 116 209 93 98 47 165 174 106 83 67 184 75 12 290 183 197 112 240 67 56 215 148 104 5 141 2...

output:

1322
2696
1743
2611
4759
4995
2950
1327
880
5076
7811
4860
935
925
808
7270
7663
5325
3813
3225
4478
1577
2540
40
901
300
4351
3882
3813
5739
4610
1658
437
1416
3623
5257
565
119
2044
7615
9112
2047
3121
3683
2883
420
727
4006
179
3231
1443
1602
7127
3008
5954
8083
1539
3807
363
4476
3300
1741
818
2...

result:

ok 5000 tokens

Test #16:

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

input:

5000 5000
180 296 137 108 236 226 19 135 16 42 151 140 223 244 115 170 230 207 143 65 195 219 77 119 170 197 223 65 64 217 206 157 100 52 202 192 19 193 281 229 212 183 63 220 261 66 209 32 63 190 144 221 180 248 29 265 152 141 212 50 129 237 281 270 261 192 104 55 133 12 92 91 61 258 51 172 244 257...

output:

2352
1322
634
560
4251
760
1955
2722
5272
6615
1000
4720
1911
3371
4615
1164
7958
5006
2763
2322
6894
5026
4684
6645
607
5386
1264
7647
2221
651
98
1887
1722
248
954
4149
3969
1388
4170
2436
6737
377
6999
2049
2382
3586
3351
1107
6024
8005
535
1504
4057
438
4064
6837
4173
4865
1903
4334
2962
198
526...

result:

ok 5000 tokens

Test #17:

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

input:

5000 5000
152 143 107 44 171 299 88 120 221 238 145 137 152 30 196 218 31 216 16 39 206 111 212 195 91 45 107 165 132 260 264 57 217 9 223 194 137 59 132 194 286 248 28 95 219 236 144 145 76 69 53 127 91 226 15 277 60 180 114 122 112 96 108 283 55 50 204 123 69 29 136 134 42 283 240 164 33 17 143 10...

output:

4076
2789
375
2375
2365
290
5779
1429
5357
1975
1146
4711
2438
4576
1984
173
4275
1748
1757
3292
538
495
3471
2870
1874
5565
2936
4736
1561
4658
6347
5936
1610
8726
518
3856
1264
2567
91
5371
4139
1415
6416
6198
4353
406
2055
7098
2759
1443
4707
4578
5778
6439
1210
353
2224
6103
4571
2885
4011
2550
...

result:

ok 5000 tokens

Test #18:

score: -18
Wrong Answer
time: 0ms
memory: 3900kb

input:

5000 5000
7 4 1209 6 3 2 332 4 6 2 657 7 8 5 368 6 3 1 2973 4 1 2 1643 3 8 4 1694 4 7 2 1933 5 5 3 1973 5 3 6 1401 2 8 3 1040 6 4 3 2227 5 4 1 2731 3 4 5 352 5 4 5 2322 8 8 4 232 5 8 1 453 3 4 5 326 5 7 4 697 5 3 2 2147 6 8 8 1152 5 7 7 2473 2 8 1 2891 6 1 1 2272 5 1 6 2213 3 1 3 801 5 5 5 576 7 3 1...

output:

1018
12
2043
270
1610
1021
8575
4271
1210
5633
6567
2061
773
125
836
1197
776
4069
6501
1374
2407
6267
1114
775
1165
3713
3231
3657
358
1922
2773
5851
7779
7733
332
190
1891
465
4803
1433
290
1436
2845
1719
2489
381
3339
4091
5023
4603
2005
3559
6063
482
7197
956
370
4129
7125
730
61
403
2545
6857
4...

result:

wrong answer 3rd words differ - expected: '2042', found: '2043'

Subtask #4:

score: 0
Time Limit Exceeded

Test #23:

score: 66
Accepted
time: 829ms
memory: 120344kb

input:

1000000 1000000
1105 3246 1880 3554 818 2331 2576 4140 149 4562 3498 3536 3400 4788 4363 4742 1216 4218 4032 1701 1489 4889 1761 3022 3145 4945 3067 4304 5016 4624 1612 13 1335 3613 1086 2210 386 3464 1156 3352 4341 5006 3465 3900 622 654 1826 2983 1250 4164 3335 4308 2995 1982 1347 4335 2535 5054 4...

output:

1263815
308608
760115
79452
160350
576908
988222
1716103
1345118
215185
615960
546263
1385912
320711
1094276
52291
276158
227555
2476
147750
144806
667128
25418
223778
184324
1445226
1666310
547639
146406
969316
1106498
237554
817297
112491
84810
1188701
316694
717959
169528
559867
767792
412202
732...

result:

ok 1000000 tokens

Test #24:

score: 0
Accepted
time: 813ms
memory: 120540kb

input:

1000000 1000000
527 3920 401 1486 606 3642 1277 2668 2579 2728 4669 3313 730 4241 3197 841 2036 2758 2687 4946 1352 15 3445 1010 2485 2764 2501 1864 4501 3756 3605 3685 543 4866 4450 3713 4592 3814 243 1778 4446 18 3845 4874 726 665 532 345 1419 4381 107 3763 4941 2 280 759 4744 3537 4146 4289 4426 ...

output:

1266412
85167
6797
467075
143942
401875
230600
686422
136253
620827
383202
16007
507791
208181
160399
1625926
143357
1304506
472925
24772
854987
1424226
204580
1217006
632808
872879
94028
64186
1444974
66982
13649
728491
882172
340172
1228584
975111
1172671
745171
885348
894087
1107690
268570
466233...

result:

ok 1000000 tokens

Test #25:

score: 0
Accepted
time: 819ms
memory: 120400kb

input:

1000000 1000000
2924 2207 2863 3688 4354 2178 249 3641 1722 832 2166 2993 4965 1712 467 2985 3155 2499 3697 2198 418 3206 3363 4939 3519 2498 208 2350 1915 883 1304 1289 1176 2940 2528 2265 3205 309 5027 3131 1605 823 2063 1070 1933 1098 3623 3306 3752 1371 2204 3170 3931 773 4029 518 4930 4632 3123...

output:

66552
421925
47840
553007
101473
741226
342901
905017
1128131
262875
916454
1271725
1687005
549894
461128
99677
1076946
1396038
873472
839214
231408
1136724
594832
634884
985318
1069765
157496
353491
1831090
347730
1238853
1340386
433279
1226192
59056
453400
381770
407755
4657
477432
990073
345545
3...

result:

ok 1000000 tokens

Test #26:

score: -66
Time Limit Exceeded

input:

1000000 1000000
5 16 21 17 3 10 7 15 6 9 22 21 23 17 13 6 2 2 23 15 21 14 8 5 14 1 5 12 20 12 18 6 8 13 11 4 19 6 18 10 14 16 16 7 10 2 10 7 17 7 4 16 3 6 5 19 18 12 9 21 3 6 23 20 1 12 14 16 11 4 9 18 23 6 20 21 15 11 19 10 15 17 12 4 16 18 16 6 4 11 18 6 19 3 11 20 19 18 4 12 20 15 18 19 15 23 13 ...

output:

294395
428665
868715
194055
551295
1024311
1006203
774815
1552821
88624
134267
353355
475987
736071
558643
993391
624161
145934
884873
876139
1157373
1441635
40896
80662
113493
159050
1117599
1847461
1414883
81557
652609
53129
288299
413645
887057
634873
1374981
889019
795137
30413
524775
620293
456...

result: