QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#424071 | #7406. Longest Lyndon Prefix | zhicheng | AC ✓ | 9ms | 6388kb | C++14 | 917b | 2024-05-28 21:27:18 | 2024-05-28 21:27:18 |
Judging History
answer
#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int N=100010;
const ull base=31;
char s[N];
int p[N],ans[N];
ull h[N],pw[N];
ull get(int l,int r){
return h[r]-h[l-1]*pw[r-l+1];
}
int cmp(int a,int b,int c,int d){
int l=1,r=min(b-a+1,d-c+1),mid,ans=0;
while(l<=r){
mid=(l+r)>>1;
if(get(a,a+mid-1)==get(c,c+mid-1)){
ans=mid;
l=mid+1;
}
else{
r=mid-1;
}
}
if(ans==min(b-a+1,d-c+1)){
return (ans==d-c+1)?0:1;
}
return s[a+ans]<s[c+ans];
}
int main(){
int t,n;
scanf("%d",&t);
pw[0]=1;
while(t--){
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++){
pw[i]=pw[i-1]*base;
h[i]=h[i-1]*base+s[i];
}
for(int i=n;i>=1;i--){
p[i]=i+1;
while(p[i]<=n&&cmp(i,p[i]-1,p[i],p[p[i]]-1)){
p[i]=p[p[i]];
}
ans[i]=p[i]-i;
}
for(int i=1;i<=n;i++){
printf("%d ",ans[i]);
}
printf("\n");
}
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3960kb
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: 5ms
memory: 3864kb
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: 5ms
memory: 3752kb
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: 5ms
memory: 3968kb
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: 5ms
memory: 3964kb
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: 4ms
memory: 3928kb
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: 4ms
memory: 5900kb
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: 3800kb
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: 9ms
memory: 6384kb
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: 5ms
memory: 6388kb
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: 8ms
memory: 6324kb
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: 3ms
memory: 6328kb
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: 6ms
memory: 6200kb
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: 7ms
memory: 6244kb
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: 6ms
memory: 6348kb
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