QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#830638 | #6842. Popcount Words | Richard_whr | WA | 600ms | 396660kb | C++14 | 1.8kb | 2024-12-24 21:14:14 | 2024-12-24 21:14:19 |
Judging History
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'