QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#211429#7406. Longest Lyndon PrefixSolitaryDream#AC ✓14ms7756kbC++171.5kb2023-10-12 16:16:022023-10-12 16:16:02

Judging History

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

  • [2023-10-12 16:16:02]
  • 评测
  • 测评结果:AC
  • 用时:14ms
  • 内存:7756kb
  • [2023-10-12 16:16:02]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define FOR(i,s,t) for(int i=(s),_t=(t); i<=_t; ++i)
#define DOR(i,s,t) for(int i=(s),_t=(t); i>=_t; --i)
typedef long long ll;
const ll Mod=(1ll<<61)-1;
const int base=233;
const int N=1e5+50;
char str[N];
__int128 h[N];
__int128 sum[N];
ll ha(int l,int r) {
    __int128 v=(sum[r]-sum[l-1]*h[r-l+1])%Mod;
    if(v<0) v+=Mod;
    return v;
}
bool cmp(int a,int b,int c,int d) {
    int L=1,R=min(b-a+1,d-c+1),l=0;
    while(L<=R) {
        int mid=L+R>>1;
        if(ha(a,a+mid-1)==ha(c,c+mid-1)) l=mid,L=mid+1;
        else R=mid-1;
    }
    int pa=a+l,pc=c+l;
    // cerr << a << ' ' << b << ' ' << c << ' ' << d << ' ' << l << endl;
    if(pa>b && pc>d) return 0;
    else if(pa>b) return 1;
    else if(pc>d) return 0;
    else return str[pa]<str[pc];
}
int stk[N];
int ans[N];
void solve() {
    int n;
    cin >> n;
    cin >> str+1;
    h[0]=1;
    FOR(i,1,n) h[i]=h[i-1]*base%Mod;
    FOR(i,1,n) sum[i]=(sum[i-1]*base+str[i])%Mod;
    int K=0;
    stk[K]=n+1;
    // cerr << " -- " << endl;
    DOR(i,n,1) {
        // cerr << i << endl;
        while(K && cmp(i,stk[K]-1,stk[K],stk[K-1]-1)) {
            --K;
        }
        // cerr << i << endl;
        ans[i]=stk[K]-i;
        stk[++K]=i;
    }
    FOR(i,1,n) cout << ans[i] << " \n"[i==n];
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T;
    cin >> T;
    while(T--) solve();
    return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 5664kb

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: 5688kb

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 1 1 1
7 6 5 4 3 2 1
1 ...

result:

ok 54963 numbers

Test #3:

score: 0
Accepted
time: 3ms
memory: 5744kb

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 4 1 2 1
1 1 3 2 1
1 1 ...

result:

ok 54644 numbers

Test #4:

score: 0
Accepted
time: 6ms
memory: 5684kb

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 1 1
6 5 4 3 2 1 2 1
6 1 4 ...

result:

ok 54830 numbers

Test #5:

score: 0
Accepted
time: 6ms
memory: 5676kb

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
2 1
3 2 1
1 6 1 1 3 ...

result:

ok 55358 numbers

Test #6:

score: 0
Accepted
time: 3ms
memory: 5680kb

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 5 4...

result:

ok 52575 numbers

Test #7:

score: 0
Accepted
time: 3ms
memory: 3728kb

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: 3ms
memory: 3748kb

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: 14ms
memory: 7360kb

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: 10ms
memory: 7356kb

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: 9ms
memory: 7316kb

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: 12ms
memory: 7296kb

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: 4ms
memory: 7692kb

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: 9ms
memory: 7316kb

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: 4ms
memory: 7756kb

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