QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#538335 | #7406. Longest Lyndon Prefix | solar_express# | AC ✓ | 23ms | 6308kb | C++20 | 1.5kb | 2024-08-31 10:35:51 | 2024-08-31 10:35:52 |
Judging History
answer
#include<bits/stdc++.h>
#define N 100005
using namespace std;
int T,n;
char s[N];
int sz;
int rak[N],sa[N],tp[N],c[N];
void Rsort(){
for(int i=0;i<=sz;++i) c[i]=0;
for(int i=1;i<=n;++i) ++c[rak[i]];
for(int i=1;i<=sz;++i) c[i]+=c[i-1];
for(int i=n;i>=1;--i) sa[c[rak[tp[i]]]--]=tp[i];
}
void sa_build(){
sz=127;
for(int i=1;i<=n;++i)
rak[i]=s[i],tp[i]=i;
Rsort();
for(int w=1,p=0;p<n;sz=p,w<<=1){
assert(w<=n);
p=0;
for(int i=1;i<=w;++i)
tp[++p]=n-w+i;
for(int i=1;i<=n;++i)
if(sa[i]>w)
tp[++p]=sa[i]-w;
Rsort();
for(int i=1;i<=n;++i) swap(tp[i],rak[i]);
rak[sa[1]]=p=1;
for(int i=2;i<=n;++i)
rak[sa[i]]=(tp[sa[i-1]]==tp[sa[i]]&&tp[sa[i-1]+w]==tp[sa[i]+w])?p:++p;
}
}
int tr[N],ans[N];
void init(){
for(int i=1;i<=n;++i) tr[i]=n+1;
}
void modify(int x,int v){
for(int i=x;i<=n;i+=i&(-i)) tr[i]=min(tr[i],v);
}
int qry(int x){
int res=n+1;
for(int i=x;i;i-=i&(-i)) res=min(res,tr[i]);
return res;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%s",&n,s+1);
sa_build();
init();
for(int i=n;i>=1;--i){
assert(rak[i]>0);
ans[i]=qry(rak[i])-1;
modify(rak[i],i);
}
for(int i=1;i<=n;++i)
printf("%d ",ans[i]-i+1);
puts("");
for(int i=1;i<=n;++i) sa[i]=rak[i]=tp[i]=0;
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3900kb
input:
3 3 aaa 3 aab 3 cba
output:
1 1 1 3 2 1 1 1 1
result:
ok 9 numbers
Test #2:
score: 0
Accepted
time: 7ms
memory: 3900kb
input:
10000 10 ababbbbaaa 6 aabbaa 3 abb 9 bababbbbb 9 abbaaaaaa 8 ababbaab 7 abbbbbb 7 aaabaaa 2 ba 10 abaababbab 2 ab 1 a 1 a 5 ababa 6 aaabba 2 ba 4 abba 5 bbbba 9 aabbbbbaa 10 baaabaaaba 10 babbbbbbaa 9 babaaabba 1 b 6 abbbaa 7 aaaaaab 10 baaaaabaaa 9 bbbbabbba 3 bbb 8 abaababa 7 bbbbaba 5 ababb 1 b 7...
output:
7 1 5 1 1 1 1 1 1 1 4 3 1 1 1 1 3 1 1 1 8 1 6 1 1 1 1 1 3 1 1 1 1 1 1 1 1 5 1 3 1 1 3 2 1 7 1 1 1 1 1 1 4 3 2 1 1 1 1 1 1 2 1 8 5 1 3 1 1 2 1 2 1 1 1 2 1 2 1 1 5 4 3 1 1 1 1 1 3 1 1 1 1 1 1 1 1 7 6 1 1 1 1 1 1 1 1 4 3 2 1 4 3 2 1 1 1 7 1 1 1 1 1 1 1 1 1 2 1 5 4 3 1 1 1 1 4 1 1...
result:
ok 54963 numbers
Test #3:
score: 0
Accepted
time: 7ms
memory: 3832kb
input:
10000 4 cbcc 7 cccbcac 3 cac 3 cba 6 caaacb 9 aaabaccac 8 acbabbab 7 cbabcac 2 ba 4 caab 4 bcac 8 aacabcac 8 cbbbacab 7 cbcacca 4 aaac 3 bac 10 acacbabaab 6 ccabba 6 cbccca 5 cbabb 9 acacbcbba 1 c 9 aaacacaba 10 aacbaaacbc 5 bbaac 8 bbaabbab 3 bac 3 cbb 3 caa 3 abb 2 bc 8 abcacbca 6 bbabab 5 bcbca 1...
output:
1 3 1 1 1 1 1 2 1 2 1 1 2 1 1 1 1 1 5 4 3 1 1 9 8 7 1 3 1 1 2 1 3 1 1 3 1 1 2 1 1 1 5 2 1 2 1 1 1 1 3 2 1 2 1 2 1 8 2 1 5 2 1 2 1 1 1 1 1 2 1 2 1 1 2 1 3 1 1 1 4 3 2 1 1 2 1 5 1 3 1 1 2 1 3 2 1 1 1 3 1 1 1 1 4 1 1 1 1 1 1 3 1 1 8 1 6 1 2 1 1 1 1 1 8 7 2 1 2 1 2 1 1 4 3 1 1 6 5...
result:
ok 54644 numbers
Test #4:
score: 0
Accepted
time: 6ms
memory: 3904kb
input:
10000 8 fddfiagb 5 cabjf 9 cgcbjbdfd 1 a 1 j 3 gcg 3 gba 7 cagdcfh 6 jaidja 2 fh 5 iefej 1 c 7 ggdghae 8 aeaibgge 6 bgihie 9 dhafgiief 6 bhcjih 7 iaajfhe 1 g 1 h 2 hb 3 bac 6 gfdcgc 4 fiad 9 gchaceeaj 10 agjacfdggg 9 bbhiffbgg 8 eeeefjcf 7 afcgiea 2 gj 8 gbiijidi 1 b 6 jejdea 3 fcc 6 ghaijb 10 cecgd...
output:
1 4 3 2 1 3 1 1 1 4 3 1 1 2 1 1 2 1 4 2 1 1 1 1 1 2 1 1 1 1 1 6 1 1 3 2 1 1 4 1 2 1 1 2 1 1 4 1 2 1 1 1 1 3 2 1 2 1 8 1 6 1 4 1 1 1 6 4 1 2 1 1 2 1 7 4 3 1 1 2 1 6 1 4 1 1 1 1 6 5 1 2 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 2 1 2 1 1 2 1 6 3 1 1 2 1 3 2 1 7 6 1 4 1 1 1 9 5 2 1 1 1 3 ...
result:
ok 54830 numbers
Test #5:
score: 0
Accepted
time: 3ms
memory: 3900kb
input:
10000 6 wjgjli 2 um 10 ztmekuwlby 10 waawouorxc 7 juqxdzu 5 kimcu 6 euxxiw 5 uizus 7 wpuyrwg 8 tsdbixbu 8 qsparfin 3 jwn 5 pbiul 9 dcglefecs 1 u 7 sprjnyj 10 npiglkutgk 3 ihv 10 hkjelyarxa 9 abswbhkuw 9 ngohupqot 2 am 3 aax 7 lfpljzo 6 kgetfz 5 wbvwv 6 indqlw 3 qym 4 sddd 2 mt 7 klzloba 9 myifxnhkw ...
output:
1 1 4 2 1 1 1 1 1 1 1 5 4 2 1 1 2 1 1 9 8 1 2 1 3 2 1 1 4 1 2 1 3 1 1 1 2 1 2 1 6 3 1 1 2 1 1 4 1 1 1 1 5 2 1 2 1 1 1 1 1 5 2 1 2 1 2 1 1 5 1 3 2 1 3 1 1 1 4 3 1 1 1 8 2 1 2 1 1 2 1 1 1 2 1 3 2 1 1 2 1 1 5 1 3 1 1 2 1 1 2 1 3 1 1 3 2 1 3 2 1 1 9 3 2 1 5 4 3 2 1 1 8 1 6 1 2 1 2 1 ...
result:
ok 55358 numbers
Test #6:
score: 0
Accepted
time: 5ms
memory: 5944kb
input:
1000 23 jdefdahaejiebhbbachgbea 10 eccjdgfdfd 45 aggeechjbaabeccaghcehahgeadahaececgghgijiajdh 32 bgfafgbhechfjbcjadcdbabhgbdgcehf 49 jcabigjdhfaagahjihebibffdebhdgjeiiijjacahiaggcibg 17 gifciaaaechbehbie 82 bcdegeehagadfhfagajfibiegifcfjddibhjhifceijjgedadgighaffcjehaihahcddbjjhghghieafec 88 jiieba...
output:
1 3 2 1 1 2 1 9 3 1 1 1 2 1 1 1 6 3 1 1 2 1 1 1 9 8 1 3 1 1 2 1 1 9 1 1 1 1 3 2 1 1 36 35 4 1 1 1 10 2 1 3 2 1 4 1 1 1 20 1 2 1 16 1 10 1 8 7 6 1 4 2 1 1 4 1 2 1 3 1 1 13 2 1 7 1 1 4 1 2 1 3 2 1 5 1 2 1 1 11 3 1 1 7 2 1 4 3 1 1 1 1 8 7 1 2 1 3 1 1 39 26 1 24 3 1 1 1 1 2 1 16 1 1 2 1 11 1 9 2 1 6...
result:
ok 52575 numbers
Test #7:
score: 0
Accepted
time: 5ms
memory: 5948kb
input:
100 958 bcaegajcfehihhaijijiagcdhchdgacaiffhcgeacceefbfedebddghdefjjchabccdfdhfafihcjcjhdjbhhaeececaiebiejahgdceicfbdcaegjjaecbfhiegabhcbbjgibhdaeegaffefjfjbhiaiccaccicigfjdjabfdagbdbbbahddfjbgfcgdccgehcijfhjeahefbcjfedacdghjbcedigcijihbajfcfeejgedebcjcgjfbaiabcbcciejehbhjegfagajdaedhijjfiaigifgheff...
output:
2 1 27 2 1 9 1 7 1 5 2 1 1 1 6 2 1 2 1 1 9 1 7 2 1 4 1 2 1 33 1 8 1 3 2 1 3 1 1 23 5 4 3 2 1 5 1 1 2 1 12 9 3 2 1 5 4 3 1 1 2 1 189 8 7 6 5 1 3 1 1 14 3 1 1 7 1 5 1 1 2 1 3 1 1 30 1 1 2 1 1 7 1 1 4 1 2 1 12 1 1 1 5 2 1 2 1 3 1 1 5 4 3 1 1 9 1 1 6 3 2 1 2 1 42 3 1 1 8 4 1 2 1 3 1 1 19 3 2 1 15 1 1 5 ...
result:
ok 52113 numbers
Test #8:
score: 0
Accepted
time: 4ms
memory: 5868kb
input:
100 917 urldtufacwbinfdubedmcwhgopzwzdgctwdxzdpkjdvsjqwhfmxlbjaniolzgfjetehrqvcvxmbpkcgccxteriwvzuhflkbhqkzzqcuodovddiitnmjnptqpnrvoqdhvpcvbzqejvkecwaynsuqkvbubwouwrmzqqlkelnculupjheobidrworymefjhvggxeofaksrokysyrnndbfcwsntyvcojnoyumlalojfjvtfejqcbvjlizdyneegubsfucawlurjletoyjfxegalalcnytyjjjiwzkbkc...
output:
1 1 1 4 2 1 1 746 2 1 6 2 1 1 2 1 38 1 2 1 11 1 1 6 5 4 1 2 1 2 1 21 2 1 3 2 1 15 1 1 1 11 1 1 3 2 1 1 4 2 1 1 2 1 141 1 4 1 2 1 1 2 1 2 1 5 4 1 2 1 4 2 1 1 20 1 1 2 1 15 14 1 1 11 1 5 1 2 1 1 1 3 1 1 47 6 1 4 1 1 1 30 1 1 3 2 1 22 17 16 15 1 1 1 11 10 3 1 1 1 5 2 1 2 1 4 3 1 1 2 1 10 1 1 4 3 1 1 1 ...
result:
ok 48866 numbers
Test #9:
score: 0
Accepted
time: 23ms
memory: 6224kb
input:
1 100000 bbbabaabaaabaabbbabaababbabbbabaaaababbabaababbaababbabbbbaaababbaaaaabaabbbabbbaababaabbaabbababbabbabababbaaaabbabbbbbbbbbbabaabbbabbbaaaabaaaaaabbbaababaaabbaabaabbaabbaaabababbaabbaaaaaabbbaaabaababbbbbaaaabbaababaabbbbbbabababaabababaaaabbbbbbaabbbabaaaabbbababaaaabbaaaaaabbabaaabaabba...
output:
1 1 1 2 1 3 2 1 23 22 2 1 7 4 1 1 1 2 1 12 9 1 7 1 1 4 1 1 1 2 1 34 26 8 5 1 3 1 1 2 1 17 5 1 3 1 1 11 10 1 8 1 1 5 1 1 1 1 7 6 5 1 3 1 1 76 70 41 40 2 1 9 4 1 1 1 4 1 1 1 28 2 1 2 1 23 3 1 1 19 3 1 1 8 1 3 1 1 3 1 1 7 1 5 1 3 1 1 28 27 26 14 1 1 11 1 1 1 1 1 1 1 1 1 1 2 1 9 4 1 1 1 4 1 1 1 5 4 3 2 ...
result:
ok 100000 numbers
Test #10:
score: 0
Accepted
time: 12ms
memory: 6308kb
input:
1 100000 caabbccaaabcbbbcacbbbbbaabacabcaacacbabbcacacaaccacbbccbabbaccccbaccabcabacbbccccacbabaccacbaaabcccacaccbbaaacbbbcacbccbaaaabaabbaacaaacaaacbaacbcaaacccabcccbbacccccaacbccabbbcaccaaaccbcccbbcbacccaaacbaabaaabaabaccccccbcccccaabcaacbbcbbaacbccabccbbbbabbcbcbcbabcbaaabccccaaabacaaacaaabbabbca...
output:
1 6 5 4 3 1 1 113 15 14 2 1 4 3 2 1 7 1 1 1 1 1 1 69 7 1 2 1 3 2 1 61 5 1 3 1 1 8 3 2 1 2 1 2 1 47 3 1 1 7 1 4 3 1 1 1 15 1 1 6 1 1 1 1 1 3 1 1 3 2 1 21 1 8 1 6 5 1 1 1 1 3 1 1 8 1 3 1 1 3 1 1 28 13 12 4 1 1 1 7 1 5 1 1 1 1 14 13 12 1 4 3 2 1 6 1 3 1 1 1 180 83 10 2 1 7 3 1 1 3 2 1 72 3 2 1 60 9 3 1...
result:
ok 100000 numbers
Test #11:
score: 0
Accepted
time: 10ms
memory: 6192kb
input:
1 100000 hbjlrpypvmluheuxuoquywmrtabyafdpxbvahkvzbqachlachljnappbkfetpkkvazifiswufsuxedthevgdtpljopiqgrtkajrblfflhnmtapnqiwzhphkmimlooxnyltzbskmgybtfgovrduecgarajrvotkaewgedvzaldsxksqyhfajrjdjapnfwgtrwgiraaqafcooyiryhmvtgfspqayywtleaduegvigxpuqmojqbvbdpwficpditskecryzbciajujgrwxglfwpjinrjuwfwsqqwjus...
output:
1 24 10 9 1 2 1 2 1 1 2 1 1 12 2 1 1 5 4 3 1 1 3 2 1 170 2 1 14 1 3 2 1 2 1 7 4 3 2 1 2 1 153 3 2 1 149 5 4 1 2 1 44 1 1 9 1 1 6 1 1 3 2 1 32 1 1 9 4 3 1 1 4 3 2 1 1 19 1 1 3 1 1 13 1 1 1 3 2 1 2 1 4 2 1 1 62 2 1 9 1 7 6 1 4 1 2 1 43 1 2 1 3 2 1 2 1 14 2 1 11 1 9 3 2 1 2 1 3 2 1 18 1 2 1 2 1 12 1 5 ...
result:
ok 100000 numbers
Test #12:
score: 0
Accepted
time: 19ms
memory: 6308kb
input:
1 100000 abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafaba...
output:
65536 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 32 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 64 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 32 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 128 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1...
result:
ok 100000 numbers
Test #13:
score: 0
Accepted
time: 14ms
memory: 6184kb
input:
1 100000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 100000 numbers
Test #14:
score: 0
Accepted
time: 18ms
memory: 6304kb
input:
1 100000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
100000 99999 99998 99997 99996 99995 99994 99993 99992 99991 99990 99989 99988 99987 99986 99985 99984 99983 99982 99981 99980 99979 99978 99977 99976 99975 99974 99973 99972 99971 99970 99969 99968 99967 99966 99965 99964 99963 99962 99961 99960 99959 99958 99957 99956 99955 99954 99953 99952 99951...
result:
ok 100000 numbers
Test #15:
score: 0
Accepted
time: 18ms
memory: 6184kb
input:
1 100000 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 100000 numbers
Extra Test:
score: 0
Extra Test Passed