QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#482723 | #4224. 串 | yqh2025 | 100 ✓ | 310ms | 189512kb | C++14 | 1.7kb | 2024-07-17 20:55:05 | 2024-07-17 20:55:05 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int n;
namespace SAM{
struct hzzdj{
int len,father,son[30];
}hz[N<<1];
int tot,last;
int mi[N<<1],siz[N<<1];
vector<int>E[N<<1];
void init(){
// memset(mi,127,sizeof(mi));
for(int i=0;i<=tot;i++){
hz[i].len=hz[i].father=0;
memset(hz[i].son,0,sizeof(hz[i].son));
siz[i]=0;mi[i]=N+10;
E[i].clear();
}
tot=0;last=0;hz[0].father=-1;
}
void insert(char ch,int i){
int cha=ch-'a',p=last;
int cur=++tot;hz[cur].len=hz[p].len+1;
mi[cur]=i;siz[cur]=1;
while(p!=-1&&!hz[p].son[cha]){
hz[p].son[cha]=cur;
p=hz[p].father;
}
if(p==-1)hz[cur].father=0;
else{
int q=hz[p].son[cha];
if(hz[q].len==hz[p].len+1)hz[cur].father=q;
else{
int nq=++tot;hz[nq].len=hz[p].len+1;
mi[nq]=N+10;
hz[nq].father=hz[q].father;
hz[q].father=hz[cur].father=nq;
memcpy(hz[nq].son,hz[q].son,sizeof(hz[q].son));
while(p!=-1&&hz[p].son[cha]==q){
hz[p].son[cha]=nq;;
p=hz[p].father;
}
}
}
last=cur;
}
void dfs(int u){
for(int v:E[u]){
dfs(v);
mi[u]=min(mi[u],mi[v]);
siz[u]+=siz[v];
}
}
int sol(){
for(int i=1;i<=tot;i++)E[hz[i].father].push_back(i);
// for(int i=0;i<=tot;i++)cout<<mi[i]<<" ";cout<<endl;
dfs(0);
int ans=n/2;
for(int i=1;i<=tot;i++){
if(siz[i]>=2&&mi[i]!=N+10){
// if(hz[i].len+(n-mi[i])/2==28)cout<<hz[i].len<<" "<<mi[i]<<endl;
ans=max(ans,hz[i].len+(n-mi[i])/2);
}
}
return ans;
}
}
char ch[N];
void sol(){
SAM::init();
scanf("%s",ch+1);n=strlen(ch+1);
for(int i=1;i<=n;i++)SAM::insert(ch[i],i);
printf("%d\n",SAM::sol());
}
signed main(){
int t;cin>>t;
while(t--)sol();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 5
Accepted
time: 3ms
memory: 29916kb
input:
5 wwgpdvdwwgpdvdwwgpdvdwwwvdwdww imeoqomeomqomeommeoqomeomqomem blmjcxblmjcxlmjlmjcxjcxblmjcxl exzhdyzhddyzhdedyzhyzhddydyyzd tsbosqtsbosqtsbossbosqtssqtsbb
output:
23 21 18 15 20
result:
ok 5 lines
Test #2:
score: 5
Accepted
time: 0ms
memory: 29544kb
input:
5 rmgmlkgmlkllklmlkgmgmlklklmlkm fstnttfttfnttfttfttfttfttttftt hxiykziykzixiykziyykzixiyiyyky fbtnfwbtnffwbfbtnfwbtnffwwbtnw yhdizazyhdidihdidihdizzazyyhdi
output:
17 17 18 21 17
result:
ok 5 lines
Test #3:
score: 5
Accepted
time: 6ms
memory: 31212kb
input:
4 skjnitkwybtcsfagbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslfxtijbwjqvskibxqwjmukwybtcsfagbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslukwybtcsfagbbpslfxtijbbbpslukwybtcsfaslfc ssrpyzpwiydtayxmoddtqksdrhcavtsonldnmujuyzpwiydtayxmoddtqksdrhcavtsoniydtayxmoddtqksdrhwiydtayxmo...
output:
137 112 121 112
result:
ok 4 lines
Test #4:
score: 5
Accepted
time: 0ms
memory: 29484kb
input:
4 oupltnlcbcgntpnkbvktcbcpltnlcbcgpltnlcgpltngntpnlcbcgntpnkbvktcbcpltnlcbcgpltnlnlcbcgpltnlcgpltngntpnlcbcgntpnktngntpnlcbcgntpnkbvktcbcpltnlcbcgpltnlnlcbcgpltnlcgpltngntpnlcbcgntpnlcbcgntlcbcgntpnkbvn nzmyzhhsoehahmorxpahsoehahmororxpahsoehahmhsoehahmmyzhhsoehahmhahsoehahmororxpahsoehahmhsoehahmmy...
output:
114 130 117 113
result:
ok 4 lines
Test #5:
score: 5
Accepted
time: 0ms
memory: 29588kb
input:
4 wwsqbwicfggaflmvdvegdkclrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybwwsqbwlrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybwwegdknybwwsqybwwsqbwlrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybqbwicfggafgdkclrnyafg tgloxggsznuxqxggszxggszsznuxqxggszxggszggsznuxqxggsggsznuxqxggszxggszsznuxqxggszxggszggsznuxqxggs...
output:
111 120 112 106
result:
ok 4 lines
Test #6:
score: 5
Accepted
time: 7ms
memory: 31036kb
input:
3 ikcblmcsjillvojwymeimbaeipbhobwwnyaakcsvkghhusduehctjexrtaakewiruishkmewsleodhikrnfaternerxiqhamqutaiazbldrrmaddpidimwxsqwbgedswzowhovibaauncxsthwdvudokzpsfulbtbaapxlexrtaakewiruishkmewsleodhikrnfaternerxiqhamqutaiazbldrrmaddpidimwxsqwbgedswzowhovibaauncxsthwdvudokzpsfulbtbaapxlidimwxsqwbgedswzowh...
output:
638 610 568
result:
ok 3 lines
Test #7:
score: 5
Accepted
time: 3ms
memory: 30776kb
input:
3 gsxasrisfpretvfhxlwnysaarwkvizqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnysgsxasrisfpretvfhxlwgsxasrisfpretvfhqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwarwkvizqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnysgsxasrisfpretvjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnfkfzwldzxnysgsxasrisfpretvjecdltvqmsvvqgsdgkggdcsz...
output:
582 591 547
result:
ok 3 lines
Test #8:
score: 5
Accepted
time: 6ms
memory: 30844kb
input:
3 aekaabidsppfvwzguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqevwzguexdmycjcqqcxdmyabidsppfvwzguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqezguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqevwzguexdmycjcqqcxdmyxdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjc...
output:
539 563 520
result:
ok 3 lines
Test #9:
score: 5
Accepted
time: 230ms
memory: 110592kb
input:
4 fqbsybwtrauafctwxtzxmhmelxssvxxapauncqgvqcwxfptcktzyanenlxfguejjhdzjufgmicmptfrfasgcgkqrjxzfcipjoqukvawffkuaqniqgotoylhiignmrevhwrruupzzawbqljitxdhyooixxxlqejxaaouufwvfuzxhigbilkiazqzypkovtnwwbssiqookpnsxvvhhfpjghkezwuushsoilgtbwholuilqdszikiptsvuoqpgxhwisfbwbkkpesawxuvhgfycxuwoklwjvtrpaulbexqlrsh...
output:
187457 187894 187356 187301
result:
ok 4 lines
Test #10:
score: 5
Accepted
time: 99ms
memory: 54012kb
input:
105 iiqnrmmdztbfxwmieuflzvuqveboseucomrfagkbzohyktiqnnbpkyhgciuwoqacerjgxthwjqxtkfjzvnqfnxlpfhnvznxfeglecvcllzhxhszcfphsnvjuewqelnlswxwauylfaufhnejutsngnybuxtaiglaekyeexsmxmrezvpuohjxxjatgttrbetirsmvrehqtawuvlqmuzltllmtgfmjmgrdagytkijfkfagsqumsfidsuyyclhotbrvhrotbzzmgbuyromlvuqnrpntauhvxaqereyvfzjla...
output:
5001 5001 5001 5001 50001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5002 5001 5001 5001 5001 5001 50001 5001 5001 5001 5002 5001 5001 5001 5001 5002 5001 50001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 5001 50...
result:
ok 105 lines
Test #11:
score: 5
Accepted
time: 191ms
memory: 125884kb
input:
1000001 s o k g r z l d z i n u d j i o k b o s h y w y u k v p d f e x v q d o p r s o z f i e r q s b u i w b g u b a e w p j e v g z l l o c c i q b n b h g t z i p h e s q a u s e s i n w f t y t g o v j w o m l r u s k t c c d i u t i q l m j v b f d w f w c t r l p h y b y u v l n x n s f j n ...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 1000001 lines
Test #12:
score: 5
Accepted
time: 23ms
memory: 38100kb
input:
110 rxxioshkbndigoxntdcejhvoskbndigoxntdcejgoxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgoxntdcejhvoskbndigoxbnejgoxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgoxntdcejhvosxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgo...
output:
629 577 663 560 622 537 11746 11759 625 966 595 537 989 567 539 544 578 562 536 600 572 521 19986 979 952 597 632 957 552 605 980 535 566 559 963 12740 629 548 571 988 641 14356 558 571 598 982 539 645 580 586 967 995 966 597 623 961 589 988 594 582 638 606 11243 954 604 558 588 579 559 627 547 590 ...
result:
ok 110 lines
Test #13:
score: 5
Accepted
time: 29ms
memory: 46320kb
input:
105 jlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizo...
output:
993 674 578 520 563 621 39987 623 562 551 650 631 541 598 976 663 578 600 984 556 652 996 560 596 672 964 684 972 613 990 596 551 39989 592 579 552 971 587 958 976 640 641 650 967 997 570 591 523 644 571 951 598 645 601 670 556 536 663 596 719 26336 581 618 658 544 662 22008 633 979 540 677 539 965 ...
result:
ok 105 lines
Test #14:
score: 5
Accepted
time: 31ms
memory: 57944kb
input:
5 xsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmn...
output:
59993 31805 31649 59999 35053
result:
ok 5 lines
Test #15:
score: 5
Accepted
time: 17ms
memory: 34444kb
input:
30 qqgcvqshumzfapruaztsztbkdhknlqmegsgekylgmkmobfjceeuezxqcebpqrduyxccjcpqqbefdlqfpubvvymxfnovetrestidxxvnbzsekilcemxbmjaryqofjfjdashxrclsefyqqjswxsykbydcrshczqgaknzermwvsvmkgegeygqahteynlandipovosnbqkvnwfudnabuqddlhbzsdowmfmjtgywwjtmhaikoimkapplzsmrxcpjhdvdjtbievwmxewlokxocobbgoueqkpypkdzgejmzfyxjx...
output:
5409 6422 9965 6171 9985 5656 6137 9965 5246 5788 6213 5511 9988 9994 9991 6384 9982 6431 9993 5763 6489 5902 5343 5847 5849 6573 5863 5737 6460 6527
result:
ok 30 lines
Test #16:
score: 5
Accepted
time: 310ms
memory: 189512kb
input:
3 pounzdtkokaonqyllykjhhycqxdmmwndkjqlnlxbwzqlpqwcpjnysncilfxzdkenuwbjhakfacsptrukajksxnbksyjykplglopupccpgugzlcllmwgjjhtdhebttpcgfrcuvelczudmyrakngvypqdyufrpwtxbnaykelodhusglsqayoypebnzigqgcokrokbuvsadmsjzkbzkpzzucovnwltyzdrpnvmlnmqbezaqazcsybmcrhpnsjouofleczrplhqrgqhirjarmoudvjtqsjmjqzptzgimnbetrl...
output:
283790 303401 286117
result:
ok 3 lines
Test #17:
score: 5
Accepted
time: 136ms
memory: 113624kb
input:
36 bqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrg...
output:
49988 10658 28088 11977 49994 11321 13086 49974 12836 31204 11573 30769 29147 10648 12611 11999 49983 499970 13419 11724 19956 19953 29731 11345 12438 12680 19973 12970 19992 19986 30847 11087 10522 11308 10609 12006
result:
ok 36 lines
Test #18:
score: 5
Accepted
time: 179ms
memory: 175940kb
input:
36 ueuhiuuxbkqmcjrkbkknbuogliigucooglvofroicgveqoqtacgcwukjfuszwgpermvydlhfreljsdcuhkwdfgpmbhlznaefmbfrmmzdsmpmqrhxcddjmsvpziookuvyvbpjpqnideuvvbuzhxktrhkspahzvczsdpcvfrdkvxfszauizebrmljdlsfixedavhxbyalvyrpztjhsqkleljsdcuhkwdfgpfreljsdcuhkwdfgpmbhlznaefmbfrmmzdsmpmqrhxcddjmsvpziookuvyvbpjpqnideuvvbu...
output:
11223 11643 12012 19963 12651 31459 14468 28087 33112 19974 19950 19997 49982 49993 13154 19962 277645 10927 49970 12457 29707 26432 11485 11694 19977 12699 13358 19973 10948 11629 29009 19964 27385 12772 11344 10920
result:
ok 36 lines
Test #19:
score: 5
Accepted
time: 115ms
memory: 120148kb
input:
400001 ggg eee hhh ppp eee nnn hhh aaa nnn uuu xxx ddd ttt sss jjj fff ccc ddd aaa xxx vvv mmm qqq bbb qqq uuu bbb ggg mmm qqq ccc hhh nnn yyy hhh qqq fff www xxx uuu iii ggg nnn rrr sss aaa eee vvv iii eee vvv www qqq ddd qqq rrr qqq xxx ppp yyy nnn bbb uuu bbb yyy aaa ttt www mmm lll qqq ggg zzz b...
output:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
result:
ok 400001 lines
Test #20:
score: 5
Accepted
time: 257ms
memory: 186048kb
input:
27 xtahmwzugvrelqyihbryeggyvqgliwxirxrdvtxbopgahekrhbpnixmfpuryqqiipznksnljetllzvehwvugsimiffivvsfktvumihxmdixcdelbziiuquevzotugagzvcndjkposprxtczumhoddsacivyowgqridxtqmikdbiyfhtsqhxtczxkvxbtfrknwjiowszbthabqtticsbgratmzufenstlbbczubdpkdqcylkcdnjvnejoarsplnaoocqkftcpwstwgdyjqhgfnstnjncuafkrhadptfgra...
output:
12118 12260 19991 11406 13637 19972 19986 11246 12946 19984 11974 12449 12283 12022 12063 300783 11398 10957 11564 280619 12088 19972 11514 11971 11448 11649 12875
result:
ok 27 lines
Extra Test:
score: 0
Extra Test Passed