QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#142113 | #5368. 异世界的文章分割者 | DaiRuiChen007 | 40 | 23ms | 12740kb | C++14 | 2.5kb | 2023-08-18 15:02:29 | 2023-08-18 15:03:11 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAXN=5e4+5;
const ll inf=1e18;
struct Node {
unordered_map <char,int> ch;
int link,len;
} tr[MAXN<<1];
int lst,tot;
inline void init() {
for(int i=1;i<=tot;++i) {
tr[i].link=tr[i].len=0;
tr[i].ch.clear();
}
lst=tot=1;
}
inline int insert(char c) {
int cur=++tot,p=lst;
tr[cur].len=tr[lst].len+1;
while(p&&!tr[p].ch.count(c)) tr[p].ch[c]=cur,p=tr[p].link;
if(!p) tr[cur].link=1;
else {
int q=tr[p].ch[c];
if(tr[q].len==tr[p].len+1) tr[cur].link=q;
else {
int r=++tot;
tr[r]=tr[q],tr[r].len=tr[p].len+1;
tr[cur].link=tr[q].link=r;
while(p&&tr[p].ch[c]==q) tr[p].ch[c]=r,p=tr[p].link;
}
}
return lst=cur;
} //SAM
char str[MAXN];
ll q[MAXN],w[MAXN];
int st[MAXN<<1],ed[MAXN<<1]; //ans[i]=qi+w
int buc[MAXN],rnk[MAXN<<1];
map <array<int,2>,int> Q;
bool vis[MAXN<<1];
inline ll eval(int l,int r) { //get val(S[l,r])
if(Q.count({l,r})) return Q[{l,r}];
fill(st+1,st+tot+1,r+1),fill(ed+1,ed+tot+1,l-1);
fill(vis+1,vis+tot+1,false);
init();
for(int i=l;i<=r;++i) {
int p=insert(str[i]);
st[p]=ed[p]=i,vis[p]=true;
}
fill(buc,buc+r-l+2,0);
for(int i=2;i<=tot;++i) if(!vis[i]) ed[i]=l-1,st[i]=r+1;
for(int i=2;i<=tot;++i) ++buc[tr[i].len];
for(int i=1;i<=r-l+1;++i) buc[i]+=buc[i-1];
for(int i=2;i<=tot;++i) rnk[buc[tr[i].len]--]=i;
for(int i=tot-1;i;--i) {
int p=rnk[i];
st[tr[p].link]=min(st[tr[p].link],st[p]);
ed[tr[p].link]=max(ed[tr[p].link],ed[p]);
}
fill(q+l,q+r+1,0),fill(w+l,w+r+1,0);
for(int i=2;i<=tot;++i) {
auto add=[&](int x,int y,ll nq,ll nw) {
if(x>y) return ;
q[x]+=nq,w[x]+=nw;
if(y<r) q[y+1]-=nq,w[y+1]-=nw;
};
int mx=tr[i].len,mn=tr[tr[i].link].len;
add(st[i]+1,ed[i]-mx,0,mx-mn);
add(max(st[i]+1,ed[i]-mx+1),ed[i]-mn,-1,ed[i]-mn+1);
}
ll ans=0;
for(int i=l+1;i<=r;++i) {
q[i]+=q[i-1],w[i]+=w[i-1];
ans+=(q[i]*i+w[i])*(q[i]*i+w[i]);
}
return Q[{l,r}]=ans;
}
int n,k;
inline bool check(ll x) {
int st=1,tot=0;
while(st<=n) {
if((++tot)>k) return false;
auto judge=[&](int len) {
if(st+len-1<=n) {
return eval(st,st+len-1)<=x;
}
return false;
};
int k=1,len=0;
while(judge(1<<k)) ++k;
len=1<<(k-1);
for(int d=k-2;~d;--d) if(judge(len+(1<<d))) len+=1<<d;
st+=len;
}
return true;
}
signed main() {
scanf("%d%d%s",&n,&k,str+1);
ll l=0,r=inf,res=0;
while(l<=r) {
ll mid=(l+r)>>1;
if(check(mid)) res=mid,r=mid-1;
else l=mid+1;
}
printf("%lld\n",res);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 3ms
memory: 10380kb
input:
10 3 aaaaaaaaaa
output:
6
result:
ok single line: '6'
Test #2:
score: 0
Accepted
time: 1ms
memory: 11920kb
input:
10 1 abbbaabbba
output:
289
result:
ok single line: '289'
Test #3:
score: 0
Accepted
time: 1ms
memory: 11736kb
input:
10 2 cacabbcbca
output:
11
result:
ok single line: '11'
Test #4:
score: 0
Accepted
time: 0ms
memory: 10592kb
input:
10 4 aabbccddaa
output:
1
result:
ok single line: '1'
Test #5:
score: 0
Accepted
time: 0ms
memory: 11136kb
input:
10 4 ababbbabab
output:
2
result:
ok single line: '2'
Test #6:
score: 0
Accepted
time: 3ms
memory: 12056kb
input:
10 2 ababbaaaba
output:
12
result:
ok single line: '12'
Test #7:
score: 0
Accepted
time: 3ms
memory: 12188kb
input:
10 1 baabaababa
output:
156
result:
ok single line: '156'
Test #8:
score: 0
Accepted
time: 1ms
memory: 12212kb
input:
10 10 hbjebnidnq
output:
0
result:
ok single line: '0'
Subtask #2:
score: 10
Accepted
Dependency #1:
100%
Accepted
Test #9:
score: 10
Accepted
time: 3ms
memory: 10952kb
input:
50 10 aababaaabaabaaabababaaaaaabbbababbaababaaaabababba
output:
17
result:
ok single line: '17'
Test #10:
score: 0
Accepted
time: 4ms
memory: 11128kb
input:
50 5 bbbaabbbbbaabaababbbbbbaaaaababbbaaabaaaaaabbabaab
output:
91
result:
ok single line: '91'
Test #11:
score: 0
Accepted
time: 3ms
memory: 12212kb
input:
50 5 adbabadbabadbabadbabadbabadbabadbabadbabadbabadbab
output:
412
result:
ok single line: '412'
Test #12:
score: 0
Accepted
time: 3ms
memory: 11988kb
input:
50 3 caaabcaaabcaaabcaaabcaaabcaaabcaaabcaaabcaaabcaaab
output:
3222
result:
ok single line: '3222'
Test #13:
score: 0
Accepted
time: 3ms
memory: 10472kb
input:
50 1 cadabcadabcadcadabcadabcadcadabcadcadabcadabcadcad
output:
407986
result:
ok single line: '407986'
Test #14:
score: 0
Accepted
time: 1ms
memory: 10768kb
input:
50 15 bbbbbbabaabaaaabaaabbaababbaaabababbbbaabaababaaba
output:
3
result:
ok single line: '3'
Test #15:
score: 0
Accepted
time: 0ms
memory: 10384kb
input:
50 20 baaaaaaaabbabbababbaaaabbabaabbababbbabbbabaaabaaa
output:
2
result:
ok single line: '2'
Test #16:
score: 0
Accepted
time: 1ms
memory: 10368kb
input:
50 6 ababbbbaaaaabbbabaabaaabaaabababababbaaaababbbbbab
output:
65
result:
ok single line: '65'
Test #17:
score: 0
Accepted
time: 3ms
memory: 11448kb
input:
50 1 aabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaa
output:
129389
result:
ok single line: '129389'
Test #18:
score: 0
Accepted
time: 3ms
memory: 11544kb
input:
50 1 acbcaabcababaacbbacaabcbacccbbaacaccbabccacaccaabb
output:
16446
result:
ok single line: '16446'
Test #19:
score: 0
Accepted
time: 0ms
memory: 10920kb
input:
50 14 ccaccaccaccaccaccaccaccaccaccaccaccaccaccaccaccacc
output:
6
result:
ok single line: '6'
Test #20:
score: 0
Accepted
time: 3ms
memory: 10720kb
input:
50 24 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
output:
2
result:
ok single line: '2'
Test #21:
score: 0
Accepted
time: 3ms
memory: 10908kb
input:
50 50 txcopptgjrvkgzdvaxgrhwgnkjfbspyytzkbirczhcrctddsfj
output:
0
result:
ok single line: '0'
Subtask #3:
score: 20
Accepted
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Test #22:
score: 20
Accepted
time: 1ms
memory: 10488kb
input:
200 1 cabaababbabbbcabcbcaacbccaabcacbccaabbccccbcabbcacbbcbacbccaabbbbcbcabbacabbacccbbbbbacccabcccaaacbcbaaaccabbbabcaabbbababcabccbccbaaabbbcbccbbcacbbabbaabcacbcaccccccaaaccabbaaabbbcbbccbcabbbcabcccabb
output:
2192936
result:
ok single line: '2192936'
Test #23:
score: 0
Accepted
time: 0ms
memory: 10720kb
input:
200 2 cbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaacbaa
output:
1196175
result:
ok single line: '1196175'
Test #24:
score: 0
Accepted
time: 0ms
memory: 11264kb
input:
200 3 acabacbacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacacabacacabacbacacabacbacacabacacabacbacac
output:
1550907
result:
ok single line: '1550907'
Test #25:
score: 0
Accepted
time: 5ms
memory: 12104kb
input:
200 7 hefdaadcdgfecghbgcbggfgdfchchgbdfafghahacgbbcebfchadbcechdacacccahggadbdacbggadbgceacgeedfafbhhfhaacdccefddbfaffcdggabhhcghcbfbedddeheaeaabdahhbhcefeededbfdafghdahcfbfbcbbdgccffhaeggcdhdcghghfaaefechd
output:
1134
result:
ok single line: '1134'
Test #26:
score: 0
Accepted
time: 2ms
memory: 10400kb
input:
200 11 lmmeigmkegfbcmhfedchmeckbnbgjlfljahjleeldlnkdlnkngaeiiblangdlkdfjchalckfhfcjgljlelebhfacafkjknknjjfklnhcnlgkkjmhfafmhehgehmejajabgaikfnclihbkmeckghfljgfmajflilgcimamgljlhjkfhgjcbcddfjlnchcgedmghdlfaib
output:
155
result:
ok single line: '155'
Test #27:
score: 0
Accepted
time: 5ms
memory: 11224kb
input:
200 19 cdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbaccdcccacbac
output:
133
result:
ok single line: '133'
Test #28:
score: 0
Accepted
time: 5ms
memory: 10588kb
input:
200 16 acdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbddbaacdbacdbddbaacdbacdbddbaacdb
output:
481
result:
ok single line: '481'
Test #29:
score: 0
Accepted
time: 6ms
memory: 10884kb
input:
200 25 abacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacdacdabacdabacdacdabacda
output:
99
result:
ok single line: '99'
Test #30:
score: 0
Accepted
time: 5ms
memory: 10680kb
input:
200 25 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkgmivxnitlfmciurqeqnqghxveqrxidxbmzlpdveuucarjwdqyiiaegadulttqmkzinvxalbvnccchfvjechxnufmcmofrdkesmkjeiobfzwbppknslhtxoranwbjnxggudgjmjrigintzxkusvvaqwhuwvoyiz
output:
6
result:
ok single line: '6'
Test #31:
score: 0
Accepted
time: 1ms
memory: 11764kb
input:
200 37 aaaaaaaaaaaaabdecdebedebaaaaaaaaaaaaaaaacebcbcecaebeaaaaaaaaaaaaaebcddecebbebaaaaaaaaaaaaaaeadaaecdadbaeaaaaaaaaaaaaaccbabdbbeedaeaaaaaaaaaaaaadbddbebeddcbeaaaaaaaaaaaaaaceeedcecdadbaaaaaaaaaaaaaaaaaa
output:
10
result:
ok single line: '10'
Test #32:
score: 0
Accepted
time: 2ms
memory: 10872kb
input:
200 64 bbabbbaaaabababaabbaaaabbabbbaabbaababababbbaabbbbbbbbbabbbbabaababbbbabbbabbbaabbbbbaabaabbbbbbababbbabbaaaababbbbabbbaaaaaaabbabbaabaabaabbaaabbaaaaaabaabbbbaaaaabbababbaabaabbbbbabbbbababbbbaaabaab
output:
2
result:
ok single line: '2'
Test #33:
score: 0
Accepted
time: 1ms
memory: 10568kb
input:
200 49 abbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabbab
output:
10
result:
ok single line: '10'
Test #34:
score: 0
Accepted
time: 6ms
memory: 10876kb
input:
200 57 zbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbizbzbizbzbizbizbzbizbz
output:
3
result:
ok single line: '3'
Test #35:
score: 0
Accepted
time: 6ms
memory: 11112kb
input:
200 44 aaaaaaacdaadaaaaaaabdbbaaaaaaaaaacbdaaaaaadccdcbaaaaaabdcdadaaaaaaccdabbaaaaaadcbaadaaaaaacdcdbaaaaaaabbcbdbaaaaaaabacbbaaaaaabcbccdaaaaaadbaabdaaaaaadaacddaaaaaaadcdbcaaaaaabbcdcaadbbdccdacdbcaccdbbd
output:
6
result:
ok single line: '6'
Subtask #4:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Test #36:
score: 20
Accepted
time: 12ms
memory: 12644kb
input:
1000 153 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
28
result:
ok single line: '28'
Test #37:
score: 0
Accepted
time: 23ms
memory: 12740kb
input:
1000 79 babacbbcacbbccccababbacbacacbbcabcabbaaabccbacbaacccaaaaabbcabaabcaaabccccbbaabbcaccaaacccbaaacaacccaccababaacbcbbacbcbbbcccbbcbaaababbcbacaacaccbcacaaccbbbcaabcaababbcbbabbccaccbccabaacbcacbbccbbcbaaccbcaacccacccccabbbabccacbbbbcaabccccacababacaccacbcccbcccbaccabaacbaccabbcbbacaabcbcacccaac...
output:
200
result:
ok single line: '200'
Test #38:
score: 0
Accepted
time: 11ms
memory: 10836kb
input:
1000 6 ahcfaddebbbccheeffbfdbbbdcjhdefhcibhgjbgeaigaaifcbdfbjdjiddicbhagggaaaajiejjjfdabcjjjceieaijacjbaecifacgdajcigfababaddecfehdhfbfjhdahchahiiiafaibdbbdegeachfdicciaegdcagaahgdgebdhbdejajafajjjfdjfjdijjgahjdjjjifeejjbachjaiacgjfhccebjgddjehiecibjfheicgihfdabhbdiijbcdgffaedcejecciddahjajdfjiddhgc...
output:
237763
result:
ok single line: '237763'
Test #39:
score: 0
Accepted
time: 22ms
memory: 11944kb
input:
1000 79 cfbdcgcdcdgabebecbbgcebcgefcbdageefffaddafegeabdagdaaabeaedgabgedafdegdggbedcceafgegbceceebaaadbccgadebeaeebcaggdbdgefeaeegafgbaeegaadbcaeddceecacbecdgfaefaeagdbaadbdfceedgdabfbaadcffgbedfgbbdddbcgdfccaeabbgabdfgefcefbaadefcfagebegfafbabfcbaagbedacfgffefadcdecbabbcfaegcgcddbagceaaaabcfacgfbe...
output:
91
result:
ok single line: '91'
Test #40:
score: 0
Accepted
time: 7ms
memory: 11824kb
input:
1000 3 htspasbnfsqdnsppbkaaprldgjpfaikdjcaojaejdtipsrkrfddlkepkqbjprsejnpcqigqjkmpqfhbbglccmtrrngoopfscopnocqkfesphqnteofsinkqqopnknbkejodkpnmjobgcisimpsgnqqidtfsdjakntlkgtgnnaietrijhgksrsnohilbrrtcpndciksonfptfkljhhisihcngqsdmgreakrrgmgnspabhfmegnmhtlhkrfnliipssjcbdikfgqmjtaltootaaopdrfrfrdaelnbrdd...
output:
1022595
result:
ok single line: '1022595'
Test #41:
score: 0
Accepted
time: 14ms
memory: 11116kb
input:
1000 14 jmgovzbodqoznwcmegtwxcunytkvnnoqixxjgbspvoochcctbmgfcofmdctzmpxwqwztunedfpvrdbbgujrmowvbahioiwnewuidqkajpxdkwckpmmbrkbrebgiqdktjgeaktrcgcaduslvxlpqofscjzmjmjyyzpvogthoglxsdvqpvcccfljopkcudctgxjovrppnbyzairtebpggtheutanrfalcsakvcreyxxchzalfaybwptnbulyteeuapgoscpzvigwetrjhtzxtgzhehhknztxhcvrbw...
output:
11558
result:
ok single line: '11558'
Test #42:
score: 0
Accepted
time: 13ms
memory: 11732kb
input:
1000 102 bacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaabacaab...
output:
384
result:
ok single line: '384'
Test #43:
score: 0
Accepted
time: 5ms
memory: 12308kb
input:
1000 11 dfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidabdhgcdfbkbjdlafmdkfifefkbcblkmjhjhidab...
output:
15796914
result:
ok single line: '15796914'
Test #44:
score: -20
Wrong Answer
time: 5ms
memory: 12128kb
input:
1000 3 cmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhdekggicmfkhennaifblffiofabfdkmlcklkndoiognhfihbocmabiacablhoadfenghhd...
output:
101529706
result:
wrong answer 1st lines differ - expected: '6797306034', found: '101529706'
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #4:
0%