QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#830638#6842. Popcount WordsRichard_whrWA 600ms396660kbC++141.8kb2024-12-24 21:14:142024-12-24 21:14:19

Judging History

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

  • [2024-12-24 21:14:19]
  • 评测
  • 测评结果:WA
  • 用时:600ms
  • 内存:396660kb
  • [2024-12-24 21:14:14]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=5e5+10,M=32;
int tr[N][2],idx;
int Id[N];
int ne[N];
int L[N],R[N];
int f[N][M][2];
LL g[N][M][2];
LL sum[N];
int n,m;

void insert(string s,int x)
{
	int u=1;
	for(int i=0;i<s.size();i++)
	{
		int c=s[i]-'0';
		if(!tr[u][c]) tr[u][c]=++idx;
		u=tr[u][c];
	}
	Id[x]=u;
}

int q[N],hh=0,tt=-1;
void build()
{
	for(int c=0;c<2;c++) if(tr[1][c]) q[++tt]=tr[1][c],ne[tr[1][c]]=1;
	while(hh<=tt)
	{
		int u=q[hh++];
		//printf("[%d]\n",u); 
		for(int c=0;c<2;c++)
		{
			int &v=tr[u][c];
			if(!v) v=tr[ne[u]][c];
			else ne[v]=tr[ne[u]][c],q[++tt]=v;
		}
	}
}

signed main()
{
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>L[i]>>R[i];
	idx=1;
	for(int i=1;i<=m;i++)
	{
		string s;
		cin>>s;
		insert(s,i);
	}
	
	build();
	
	//exit(0);
	
	for(int u=1;u<=idx;u++)
	{
		f[u][0][0]=tr[u][0],f[u][0][1]=tr[u][1];
	}
	for(int j=1;j<M;j++)
	{
		for(int u=1;u<=idx;u++)
		{
			f[u][j][0]=f[f[u][j-1][0]][j-1][1];
			f[u][j][1]=f[f[u][j-1][1]][j-1][0];	
		}
	}
	
	int u=1;
	for(int i=1;i<=n;i++)
	{
		int l=L[i],r=R[i];
		while(l<=r)
		{
			int sz=__builtin_popcount(l),j=min(__builtin_ctz(l),__lg(r-l+1)); 
			g[u][j][sz&1]++,u=f[u][j][sz&1];
			l+=(1<<j);
		}
	} 
	
	for(int j=M-1;j>=1;j--)
	{
		for(int u=1;u<=idx;u++)
		{
			g[u][j-1][0]+=g[u][j][0],g[f[u][j-1][0]][j-1][1]+=g[u][j][0];
			g[u][j-1][1]+=g[u][j][1],g[f[u][j-1][1]][j-1][0]+=g[u][j][1];
		}
	}
	
	for(int u=1;u<=idx;u++) sum[tr[u][0]]+=g[u][0][0],sum[tr[u][1]]+=g[u][0][1];
	
	for(int i=idx-1;i>=0;i--)
	{
		int u=q[i];
		//printf("[%d %d]\n",u,ne[u]);
		sum[ne[u]]+=sum[u];
	}
	
	for(int i=1;i<=m;i++) cout<<sum[Id[i]]<<"\n";
	
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 20176kb

input:

3 5
2 6
1 3
4 8
0
1
11
101
0011010

output:

6
7
2
2
1

result:

ok 5 lines

Test #2:

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

input:

3 10
2 6
1 3
4 8
0
1
11
101
0011010
0
1
11
101
0011010

output:

6
7
2
2
1
6
7
2
2
1

result:

ok 10 lines

Test #3:

score: 0
Accepted
time: 37ms
memory: 48780kb

input:

100000 37701
605224571 605224571
681034454 681034463
468837041 468837048
323235128 323235135
400367345 400367345
394938241 394938241
221026001 221026007
183872918 183872926
881878131 881878138
374491962 374491967
588030380 588030381
109143398 109143401
727016146 727016149
857189138 857189138
1940312...

output:

273828
273405
99633
174195
174195
99209
16229
83404
91124
83071
83404
90791
83070
16138
3449
12780
43045
40359
43221
47903
70380
12690
12780
70624
48079
42712
40183
42887
12690
3448
413
3036
6576
6204
11678
31367
34167
6191
6484
36737
16633
31270
33957
36423
9697
2993
3036
9744
36469
34155
31543
165...

result:

ok 37701 lines

Test #4:

score: 0
Accepted
time: 535ms
memory: 379556kb

input:

100000 2064
155864032 155864033
351106162 351106162
63569309 63569310
446198383 446198387
844050143 844050148
28666643 28666652
948049121 948049128
422938918 422938925
590576664 590576664
118827333 118827339
248813547 248813549
222041903 222041911
481862624 481862626
39190429 39190429
373420004 3734...

output:

274777
274799
99973
174803
174803
99996
16241
83732
91053
83750
83732
91070
83750
16246
3457
12784
43222
40510
43091
47961
70993
12757
12784
70948
47831
43239
40641
43109
12757
3489
459
2998
6565
6219
11607
31614
34345
6165
6467
36624
16421
31540
34510
36483
9693
3064
2998
9786
36657
34291
31484
163...

result:

ok 2064 lines

Test #5:

score: 0
Accepted
time: 569ms
memory: 394864kb

input:

100000 264
863548123 863548131
726674730 726674731
23567654 23567655
388640944 388640951
11253180 11253185
364951459 364951461
954258329 954258336
370336558 370336567
783663445 783663448
948622704 948622711
241717161 241717163
167305985 167305985
559579744 559579746
686340873 686340882
110381066 110...

output:

275122
274500
100192
174929
174929
99571
16458
83734
91338
83591
83734
91194
83591
15980
3543
12915
43156
40578
43255
48082
70962
12629
12915
70819
48181
43013
40479
43112
12629
3351
482
3061
6476
6439
11559
31596
34378
6200
6644
36611
16564
31518
34274
36688
9720
2909
3061
9854
36680
34139
31696
16...

result:

ok 264 lines

Test #6:

score: 0
Accepted
time: 564ms
memory: 396296kb

input:

100000 82
440580187 440580195
363746917 363746923
253327641 253327648
77285448 77285454
16654500 16654506
701949354 701949357
335798407 335798407
510898124 510898124
728200505 728200507
657089802 657089806
811878897 811878897
740279233 740279234
2002051 2002056
201584556 201584557
905281625 90528163...

output:

274946
275169
99944
175001
175001
100168
16163
83781
91017
83984
83781
91219
83984
16184
3463
12700
42944
40837
42987
48029
71306
12678
12700
71081
48072
43147
40794
43190
12678
3506
483
2980
6395
6305
11456
31487
34601
6236
6440
36547
16623
31406
34670
36636
9614
3064
2980
9720
36549
34532
31531
16...

result:

ok 82 lines

Test #7:

score: 0
Accepted
time: 561ms
memory: 396636kb

input:

100000 65
990903704 990903704
488837026 488837029
520610697 520610700
84740156 84740158
145465213 145465219
802621365 802621370
637129208 637129216
138040766 138040770
789708694 789708702
122215439 122215439
805389806 805389815
726116821 726116826
90711329 90711332
980579500 980579500
877100759 8771...

output:

275313
275152
100356
174957
174957
100194
16549
83807
90996
83960
83807
91150
83961
16233
3570
12979
43006
40801
43164
47832
71205
12755
12979
70828
47990
43159
40643
43318
12755
3478
456
3114
6506
6473
11758
31248
34498
6303
6609
36555
16430
31401
34399
36806
9714
3041
3114
9865
36500
34328
31406
1...

result:

ok 65 lines

Test #8:

score: 0
Accepted
time: 553ms
memory: 396296kb

input:

100000 15
622051406 622051410
809727709 809727711
305371768 305371773
184626015 184626015
485560137 485560143
683120615 683120618
494143101 494143106
820622384 820622384
428188273 428188280
192875194 192875198
420425386 420425394
692993018 692993020
892081956 892081958
149770059 149770067
971481390 ...

output:

274897
275773
99624
175272
175273
100500
16106
83518
91087
84185
83518
91754
84185
16315
1

result:

ok 15 lines

Test #9:

score: 0
Accepted
time: 40ms
memory: 48816kb

input:

100000 37701
22481700 108517447
365920329 760528107
176789774 293610871
626946693 749768996
176851510 945414284
28086800 69412398
975208777 978832901
602518142 777697473
926108743 981817845
102894249 424879855
807095920 982351889
387442755 443766483
240971703 255490115
877218778 889992331
212556206 ...

output:

12456513055026
12456513055194
4152171031482
8304342023544
8304342023543
4152171031650
16684
4152171014798
4152171008685
4152171014858
4152171014797
4152171008746
4152171014858
16792
2837
13847
2076085501601
2076085513196
2076085501674
2076085507011
4152171000901
13957
13847
4152171000950
20760855070...

result:

ok 37701 lines

Test #10:

score: 0
Accepted
time: 109ms
memory: 104476kb

input:

100000 2054
813088861 920847292
829798259 830042915
622260050 902589939
569332566 921851528
972439729 974981697
635612829 663768316
943300178 959626806
230028555 866755106
611037825 984956272
692908117 957931507
729299439 899435491
80797300 566831546
243465192 697136951
725914708 807308097
708248233...

output:

12554055607628
12554055608034
4184685215101
8369370392526
8369370392527
4184685215507
16502
4184685198598
4184685193836
4184685198690
4184685198599
4184685193928
4184685198690
16817
2672
13830
2092342594137
2092342604461
2092342594041
2092342599795
4184685184641
14049
13830
4184685184768
20923425996...

result:

ok 2054 lines

Test #11:

score: 0
Accepted
time: 521ms
memory: 376552kb

input:

100000 263
6495900 814924814
644264642 810226616
759397666 929669679
226052948 465198786
249046056 917890552
661740585 837290607
22998153 309770047
517914688 817207504
674138911 997925375
477982599 826121049
290788401 535952288
408265984 890129151
737268128 980648065
544692460 914764596
999867912 99...

output:

12483708370790
12483708370964
4161236136548
8322472234241
8322472234242
4161236136722
16648
4161236119900
4161236114095
4161236120146
4161236119900
4161236114341
4161236120146
16576
2785
13863
2080618054177
2080618065723
2080618054212
2080618059883
4161236106337
13809
13863
4161236106037
20806180599...

result:

ok 263 lines

Test #12:

score: 0
Accepted
time: 590ms
memory: 396324kb

input:

100000 82
888051545 963723340
820376415 859706670
696541875 702390629
319281306 633000145
557636438 809233126
223265873 332445936
976695292 987205632
549617205 683763014
598194112 693547171
579841338 800128337
23654722 786300995
911590487 933418995
543971992 804010079
123411437 584851680
699235262 8...

output:

12508693406577
12508693406464
4169564482455
8339128924121
8339128924121
4169564482343
16628
4169564465826
4169564458523
4169564465598
4169564465827
4169564458294
4169564465598
16745
2813
13815
2084782226565
2084782239261
2084782226368
2084782232155
4169564451650
13948
13815
4169564452011
20847822319...

result:

ok 82 lines

Test #13:

score: 0
Accepted
time: 600ms
memory: 396660kb

input:

100000 65
180126093 582881175
843101059 863195636
844139020 891230087
346547690 999448874
649239751 732343244
993885469 999079063
156007503 953099470
208075179 417349547
201080492 482855870
651885939 969148979
314396131 975795829
933362458 941000369
486732719 875912607
737192517 833386586
355374057 ...

output:

12476853155383
12476853156010
4158951065001
8317902090382
8317902090381
4158951065628
16652
4158951048349
4158951041792
4158951048590
4158951048349
4158951042032
4158951048589
17038
2784
13868
2079475518159
2079475530190
2079475518027
2079475523765
4158951034412
14177
13868
4158951034481
20794755236...

result:

ok 65 lines

Test #14:

score: 0
Accepted
time: 596ms
memory: 396548kb

input:

100000 15
830252988 873189870
352577243 876058482
155430076 212164363
324758725 400412103
768237846 790341478
844204667 884011973
910810657 967923987
732475949 826022946
51902714 425916814
839876964 906961513
374837231 563419539
281594039 317015797
106410858 796854968
741358451 817880999
545646157 9...

output:

12494840934864
12494840935201
4164946991153
8329893943710
8329893943710
4164946991491
16636
4164946974517
4164946968851
4164946974859
4164946974517
4164946969192
4164946974859
16632
15860855

result:

ok 15 lines

Test #15:

score: 0
Accepted
time: 442ms
memory: 326060kb

input:

100000 2278
187452932 187452972
907496831 907496873
899076103 899076149
821250671 821250719
50575458 50575499
267586851 267586897
186716838 186716840
50067975 50067975
420177633 420177650
336065481 336065506
187252929 187452972
907496831 907696846
966175639 966175664
914074711 914074722
187252956 18...

output:

1
1810755023
1810773544
603601418
1207153605
1207153605
603619938
15070
603586348
603557857
603595747
603586348
603567257
603595747
24191
2596
12474
301771985
301814362
301780568
301777289
603574342
21405
12474
603573874
301785872
301781385
301805779
301789968
21405
2786
79
2517
6275
6199
12128
3017...

result:

ok 2278 lines

Test #16:

score: 0
Accepted
time: 275ms
memory: 209616kb

input:

100000 31233
759021704 759021745
578412233 578412235
47114828 47114836
705543479 705543490
560899591 560899611
862856187 862856220
847865868 847865896
152266552 152266581
758896713 759021745
578412233 578537261
578412233 578537237
758896701 759021745
578412233 578537232
95827171 95827212
997229956 9...

output:

1
1130073994
1130082924
376696933
753377061
753377061
376705862
14700
376682233
376694988
376682072
376682233
376694828
376682072
23790
2503
12197
188345112
188337120
188344845
188350143
376660954
21118
12197
376670036
188349876
188344952
188337387
188344685
21118
2672
63
2440
6068
6129
12242
188332...

result:

ok 31233 lines

Test #17:

score: 0
Accepted
time: 306ms
memory: 243412kb

input:

100000 1267
310563835 310563862
353175747 353175795
816630451 816630497
477284380 477284418
68069293 68069340
836658726 836658774
587792567 587792592
697625891 697625911
954942185 954942197
320764013 320764045
220676262 220676264
557750075 557750112
546063852 546063863
397129952 397129964
86845190 8...

output:

1
905107932
905125151
301713527
603394404
603394405
301730746
15371
301698156
301687365
301707039
301698156
301696248
301707039
23707
2770
12601
150841289
150856867
150841014
150846350
301685911
21128
12601
301685555
150846076
150850172
150857141
150849898
21128
2579
67
2703
6222
6379
12150
15082913...

result:

ok 1267 lines

Test #18:

score: 0
Accepted
time: 545ms
memory: 388472kb

input:

100000 183
683207967 683207998
336814413 336814437
101552601 101552627
564207581 564207619
584451240 584451287
449562128 449562134
683107995 683207998
336814413 336914415
78512302 78512316
110619348 110619371
683107971 683207998
336814413 336914416
286938346 286938368
683107983 683207998
336814413 3...

output:

1
905861893
905861877
301969032
603892861
603892861
301969015
15094
301953938
301939054
301953807
301953938
301938923
301953806
15208
2609
12485
150962872
150991066
150971231
150967823
301941246
12560
12485
301941453
150976182
150962741
150982706
150971100
12560
2648
51
2558
6280
6205
12279
15095059...

result:

ok 183 lines

Test #19:

score: 0
Accepted
time: 523ms
memory: 396228kb

input:

100000 75
916139500 916139520
295529316 295529355
642630 642666
828361968 828361992
916039496 916139520
295529316 295629331
568571271 568571304
421151984 421152004
101668705 101668716
129467292 129467331
545951155 545951174
603232433 603232449
535171853 535171884
568555303 568555325
903885388 903885...

output:

1
908715019
908724116
302921535
605793483
605793484
302930632
15094
302906441
302886806
302906677
302906441
302887042
302906677
23955
2609
12485
151440925
151465516
151440946
151445860
302885440
21237
12485
302893956
151445881
151441161
151465494
151441182
21237
2718
71
2538
6230
6255
12303
15142862...

result:

ok 75 lines

Test #20:

score: 0
Accepted
time: 505ms
memory: 396500kb

input:

100000 66
282698544 282698549
813569817 813569835
645048291 645048333
680726142 680726144
324515415 324515419
477365299 477365302
240515351 240515360
795094157 795094200
972213873 972213909
713325812 713325850
419399148 419399172
583415323 583415327
644948294 645048333
680726142 680826152
700754679 ...

output:

1
907711997
907711618
302582788
605129208
605129208
302582410
15238
302567550
302561961
302567247
302567549
302561658
302567247
15163
2652
12586
151278342
151289208
151278657
151283304
302554676
12571
12586
302554963
151283619
151278039
151288892
151278354
12571
2592
66
2586
6327
6259
12378
15126596...

result:

ok 66 lines

Test #21:

score: -100
Wrong Answer
time: 539ms
memory: 396488kb

input:

100000 1
747122202 883403958
134718471 695113069
913037675 977445714
871274484 958574173
188006185 408134485
87072358 718258246
965577158 989781394
735040205 773793611
973233833 974484255
750761272 756349302
129293718 683336265
380263802 956346700
853109826 902098564
254501042 739060585
806113775 82...

output:

0

result:

wrong answer 1st lines differ - expected: '8658', found: '0'