QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#794481 | #8954. 一般路过串串题 | misfits# | 85 | 11ms | 49384kb | C++14 | 2.7kb | 2024-11-30 14:30:22 | 2024-11-30 14:30:25 |
Judging History
answer
#include<bits/stdc++.h>
#define LL long long
#define SZ(x) ((LL)(x.size()))
#define all(x) (x).begin(),(x).end()
using namespace std;
inline LL read(){
LL q=0,w=1;char ch=getchar();
while(ch>'9' || ch<'0'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){q=q*10+(ch-'0');ch=getchar();}
return q*w;
}
void write(LL x){
if(x<0){putchar('-');x=(-x);}
if(x>9)write(x/10);
putchar('0'+x%10);
}
inline void writeln(LL x){write(x);puts("");}
inline void writecs(LL x){write(x);putchar(' ');}
inline void dmax(LL &x,LL y){if(x<y)x=y;return ;}
inline void dmin(LL &x,LL y){if(x>y)x=y;return ;}
#define cout cerr
#define pb push_back
#define link __link
template<LL N,LL M>struct SAM{
LL tr[N<<1][M+1],link[N<<1]={-1},len[N<<1],cur,tot;
inline void extend(LL c){
LL x=cur;cur=++tot;len[cur]=len[x]+1;
while(x!=-1&&!tr[x][c]){tr[x][c]=cur;x=link[x];}
if(x==-1){link[cur]=0;return ;}
LL y=tr[x][c];
if(len[y]==len[x]+1){link[cur]=y;return ;}
LL up=++tot,dn=y,lk=link[y];
len[up]=len[x]+1;link[up]=lk;link[cur]=link[dn]=up;
for(LL i=0;i<M;i++)tr[up][i]=tr[dn][i];
while(x!=-1&&tr[x][c]==y){tr[x][c]=up;x=link[x];}
return ;
}
vector<LL>E[N<<1];LL cnt[N];
void dfs(LL x){
for(auto y:E[x]){dfs(y);cnt[x]+=cnt[y];}
return ;
}
inline void init(){
for(LL i=1;i<=tot;i++)E[link[i]].pb(i);
dfs(0);return ;
}
};
inline LL qpow(LL a,LL b,LL p){LL ans=1;while(b){if(b&1)ans=(ans*a)%p;b>>=1;a=(a*a)%p;}return ans;}
const LL mod = 1000000007 ;
inline void amod(LL &x,LL y){x+=y;if(x>=mod)x-=mod;}
inline void smod(LL &x,LL y){x-=y;if(x<0)x+=mod;}
inline LL dmod(LL x){if(x<0)x+=mod;if(x>=mod)x-=mod;return x;}
inline LL inv(LL x){return qpow(x,mod-2,mod);}
const LL N = 500000+95 ;
LL n,m;char a[N],b[N];SAM<N,26>T;
inline LL s0(LL l,LL r){return dmod(r-l+1);}
inline LL s1(LL l,LL r){return (((l+r)*(r-l+1))>>1)%mod;}
inline LL __s2(LL n){return ((n*(n+1)*((n<<1)+1))/6)%mod;}
inline LL s2(LL l,LL r){return dmod(__s2(r)-__s2(l-1));}
int main(){
scanf("%s",a+1);n=strlen(a+1);
scanf("%s",b+1);m=strlen(b+1);
for(LL t=1;t<=m;t++){LL c=(LL)(b[t]-'a');T.extend(c);T.cnt[T.cur]++;}
T.init();LL ans=0;
for(LL l=1;l<=n;l++){
LL p=0;
for(LL r=l;r<=n;r++){
LL c=(LL)(a[r]-'a');if(!T.tr[p][c])break;
p=T.tr[p][c];LL occ=T.cnt[p],sum=0;
// for(LL i=0;i<l;i++)for(LL j=r;j<=n;j++)amod(sum,(j-i)*(j-i)%mod);
LL len=(r-l+1);
LL A=s2(r,n),B=s0(r,n),C=s1(r,n);
//s0(0,r-len)*A+B*s2(0,r-len)-2*C*s1(0,r-len)
sum=dmod((s0(0,r-len)*A+B*s2(0,r-len)-2*C*s1(0,r-len))%mod);
amod(ans,sum*occ%mod);
}
}
writeln(ans);
return 0;
}
詳細信息
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 0ms
memory: 40756kb
input:
aababbabbaaabaabbaabaabaabbabbabbbbaabbbbaabaaabababbabbbaaa bababaabbbbabbbbbabbbbaabbaabaaaababbaaaabbbaabbaabbbbabbaba
output:
496507152
result:
ok "496507152"
Test #2:
score: 10
Accepted
time: 4ms
memory: 38568kb
input:
eececaecacbeabdeeaccdbbebbabddecebdcdebdbccbbddaaaeedaaebcdb acdaabeaaaeeedcadcaeeaaeaaeeceaebbedcadaaebaaaaddbeedeeabaea
output:
580397857
result:
ok "580397857"
Test #3:
score: 10
Accepted
time: 0ms
memory: 39392kb
input:
fcdfggfggcbedeccchceggdfedgecghhacegbbehegdhcgbefdadbeaghgcc ebbeegcfhhedfhchfdechefaafgaeacacdfgbhdbghedghdechgbdecebaef
output:
380084227
result:
ok "380084227"
Test #4:
score: 10
Accepted
time: 3ms
memory: 38552kb
input:
boodjlblcmmbdiejhhfcomlcingbgkhhifkbalmchidkbidipjkofgandgoj afaikkjkfgnmoagpikiidcgiigfmmdfmjgedanogdlccljbedjmgmcoeidae
output:
171472585
result:
ok "171472585"
Test #5:
score: 10
Accepted
time: 0ms
memory: 38704kb
input:
ksadeedmbrojirllkmtrkdhofjgjetrojrkfnnrhceqkbhnllfanahhgiohm ffsooatinippmdrfcdiniihahospagtflklfkknqlidddnbfqjtesgqfmpnn
output:
122853177
result:
ok "122853177"
Test #6:
score: 10
Accepted
time: 0ms
memory: 37896kb
input:
tqqeyqzvmvdnrgbdtwezhvpxjehcpehiwxoxnpsakxpedqhzmnywjovuucwj idthdhgqwasjxincaubpjclssinmnlxxrqeuxkmvkfejpropnrextrrlcgxp
output:
113266102
result:
ok "113266102"
Subtask #2:
score: 20
Accepted
Dependency #1:
100%
Accepted
Test #7:
score: 20
Accepted
time: 7ms
memory: 38736kb
input:
aaababbbbbbaabbbbbbabbbabbabbbabaaaabbabbbbbaabbaaabbbbaabbabbbbaabbbbaaabababaababaaabaaaabaaaaabbbbaabbaabbbbabaabbbabaaaaaaaabbaabaabaaabbabbababbaabbabbabaaaaaaaababbbababababaaabbaabbbbbabbababbbaabaababbbabbbbaaabbbababbbbaaabaababbbaabbabaabababbababaaaaabaaaabbabbbbbabbbaaabbababbabaaaababab...
output:
520547094
result:
ok "520547094"
Test #8:
score: 20
Accepted
time: 3ms
memory: 38720kb
input:
adcbdbecdaabaecdaadbbceecedbeababddbcedaeabceaabcbdadcebdaedaaadbdeaccceaabbaddeebaddebebcceeccccccbbeabbbdbcdbbedbeeeabdcadbcaabacabcbdbbbdeebacdccecddcabdcdebdbbaaeabbbbcbdadbccaecdbcbccaddabbcbacadebdcedccaadbcdacaeeccecdcabcebddabcebaedccebcbdeaebcabccdbccecdedabecaebeddbcddcdbcacbacccaceadeceac...
output:
782266849
result:
ok "782266849"
Test #9:
score: 20
Accepted
time: 3ms
memory: 38040kb
input:
baecgaafgfbdfffcgbffdadabbchacebcadaadghahcgehacafhdfcdgefgehcfbdacdeacehecddcfdaegfgbecgcgfedhhebdabfeachdfbabbehhcbdfhfdfbhebdfedgbhgdgbbabcbfbahcdecaahchddcahfgaeeedffdghedafcdahfbhedghgahffffbbbegghefehgbbbbagchcffbdfaacfgeghaegaadehbfacgbabacggdcddcgaacgaccgccbgbddcfcdgddabbedfhgdagfgghbecdgafb...
output:
367143412
result:
ok "367143412"
Test #10:
score: 20
Accepted
time: 7ms
memory: 37640kb
input:
hdnhnmolcjkclidbagdicfpnpjfohpgodegaaelcofejnhkonngpdgmcpbagbgfeklekppmneahbhbpepgecmaelcebdkghfblpbkmoomfpehpigfmibnmmpanckejpfepgolfmhkllbkehpapanlmmlkogohfdlekjppfhjbcllgclhclenibjcppahedcjnmimbpgccboidjpfeedmfmoelolpcoipkbmlacocdmlgfkmjopgdleigddffboelpahpcfcfbnmghipghfjckbinfncglgckhjkjomppjlfa...
output:
661539752
result:
ok "661539752"
Test #11:
score: 20
Accepted
time: 3ms
memory: 37884kb
input:
bcslnfnhcghmeifrrqjktgkhenisgkeheckktpjcbqgrelonaqetcgsslgqrimqmgscsndaptsepcljchfnbllloradfmljljejchbjhtoobfdpeiirllifiiifblhmalnpsoernkehhhclidalojjprjmkbtobkhibbnshpcgpciscdtnsiofferqfrkstkhadmlchfichjbbmmhcabhfffncoqbngigbaretcmocbhdgtkiteiqjfcmlsneqncrftbeogsqtrlfqoghsgehdgloqqkmjnboeplsbbgatss...
output:
507358998
result:
ok "507358998"
Test #12:
score: 20
Accepted
time: 0ms
memory: 37820kb
input:
vkypxiucqbsajxealvcbnymcevlaehbzrbqqjlsbomczkiaxdeatfoxjjkkotnpmogcatvbhjfhvojstpsmujlesvqgqfyctefvxczglenhsyboowcifooxlggcleehklchnbpbificdlqthteohsmubuwmadtkowtezifjnpmtcemkxsyglmbmizaieuutsnztygdnvpgztvjtnkbaycojepriloddbcwbibpfsxfouqhkcikdnbmtsdbfthivlgywkpdcpkqjdxtfigixjwqbctgvcqqoyrkignlvabhdb...
output:
138681994
result:
ok "138681994"
Subtask #3:
score: 30
Accepted
Dependency #2:
100%
Accepted
Test #13:
score: 30
Accepted
time: 0ms
memory: 38296kb
input:
abababbbbaabbbaabaaababbabaaababababababbababbbabbbbbaabbababababbbbababbbabbbbaaabbbbbaaaababbbaaaabbabaaabbbabababbbbbaaaabaaaaaaababaabbbabaabbbaabbabbbabbaabbabbbbaaabaaabbbabbbaaabbbbabbbabaaabaaabaabbbaaaabaaabbbababababbaabaaabaaabaabaabaabbbbabbbababaaaabbbbbabbaaaaaaababaabbbbbbbbabbbababbb...
output:
775805062
result:
ok "775805062"
Test #14:
score: 30
Accepted
time: 3ms
memory: 38400kb
input:
dadbaeeadbddeddcebeeadbacdcabebcebdcbeebcceccebbbccdaadeaaaebbbcabeddaeacbecccadeadaabbbdbabadeabaaebeaacecacdabdedacadbddcaddaaececebcbbcbacebcdccaebdcbddabacaddecacdbbcbdbeabdcbcacacaaebabeabdcbcdedccbacdbcdeadbccbcbdcecabcceacedebceaacddcaedcbaeaadbedebdedaaccdbdedbeededbbbdcddcaebbbbcbdcaabbecac...
output:
130828441
result:
ok "130828441"
Test #15:
score: 30
Accepted
time: 0ms
memory: 39044kb
input:
aecdgaeegafcgfdbbbghfheghchdabcbfeedfbadbffhcbadchchghgfbfacgcddhhheahhbeebgfbbhadhgcfeecegahbdgaccbbbcffdddfecfabecgagaeeadfebggdhaebfcfbfcfhhfbdahdgaadadaefgdafdfhahebeghdfeebeeedeegeagbffefchcbhbfbfdabbefcbbgefdccdadafhfagabfbhghcgaddffeheaehcgccbcaahaghbebacadbagefeaeaabhchbebdebceacgedggdbhdada...
output:
97380744
result:
ok "97380744"
Test #16:
score: 30
Accepted
time: 4ms
memory: 40004kb
input:
pblokjmgoadcmjkfmomjmaekljffdmbcnmbhfnndnbfjkaogokpkkdegmjlpfmbcjcjopgcmhhfbhehfogpjjdpfmkebggdpimoidaekhkmpodemkefdhejeonffdjemfceicidkcpjacnnmbcajhjnfgckklpgbbkjecmoflhfoeckgfkpmdmbkomeklklmeeagbolmfbkkdfaippedlgnjcbdnlojpdkfeibaoclifaiophccciplkaphlnbkalaedbfbdajiabgpijckbbgmcfdnceidpihdjmemmoemp...
output:
602469189
result:
ok "602469189"
Test #17:
score: 30
Accepted
time: 8ms
memory: 41260kb
input:
bcanoaimlmscgbdkdptbcsoacfqbjkfcegpsgplrtblfogqrbpkenrehcnamdggtmcskjbtjccoiicfjrqfcfcbhpclkisjmmhobancohrcptiqjqcdbqfaltmbhkclocfpcksrjhleslmthgdacabntngspbbjdsqrigojnsfejrdregjsscmrhkhclidggaegskpmiaisslhokimilqsstfncgqjmifthpglqhtgrkflmnpnqmlhdiafoigtrlkqtqhhdsnmakpnplgmpjtsrldetkdinnembdtrnejoof...
output:
640668306
result:
ok "640668306"
Test #18:
score: 30
Accepted
time: 4ms
memory: 41180kb
input:
gkyjquqqernkdsxsifohrnklzzxnikoounxmjpcnirxmjueucsdtipehodwwplmlalxjabwjsvvesbyuvbpdtvmhajeqwsbyebhecfpvambsnzmlcdovydfzojrkdskhvroywdvyswrfvfszljxjmckanbmqwwyrpopntkllietdklfvucgierkruwhsuhkjvbwpoicwmvcyhhvdlcmpvwirvrkpzwzwzvnpfqmslqsuzoyksmbpkjgfasvbqwyqrnfzdttrlllkbjwtxxkigrnjlkkcgisawzzbtssgferh...
output:
242076649
result:
ok "242076649"
Subtask #4:
score: 25
Accepted
Dependency #3:
100%
Accepted
Test #19:
score: 25
Accepted
time: 11ms
memory: 48448kb
input:
abbabbbaabbabbaaaababbbabbbbbaabbbbaabaaabbabbabbababaabbbabbbaaaabbbbbbbabababaaaabaaaaabbbabaabbbaababbbbbbabbaabbabbaaaaababbbabbbbbbbaaabbabbbaaababbabbaaabbbbababaababbababbaabbbabababbbabaaaaaabbaaabbbabbaaabaaaaabbbbaabaababbbababaaaabaaabaababaaabaababaaabaabbabaaaabbbbbaabbabaabbabbabaabbaa...
output:
743975419
result:
ok "743975419"
Test #20:
score: 25
Accepted
time: 4ms
memory: 45632kb
input:
dadbceeaceadceeceeedceceadbccceaceeaadaceaabeaaabaddecaebbcddddbecdecacdcecdbcddccdeeddcecaacedbdbbdbabaedddbbbaabecaaebeabcbeaecdcadbaaeddcabdaccceecbeecdaeabbeeeeaebbaeeaccccbcbdbceaccabebedcdaeabbadacaeeccbeacdeeadedabdaadaadebdcdaeecedaaeadaebbeebcebcdcebbccaceebbdacabcedbaecbabbcbebacedeeceaecb...
output:
950379326
result:
ok "950379326"
Test #21:
score: 25
Accepted
time: 4ms
memory: 47084kb
input:
eeghdafhfgadahfdccfehbbabhhfeceahcacdfcadcddbaheceabfbcgabefdafccfffchfgbabcaagcegechgaahefcecfhacecbcacccedcdfhbbbbhbbgggbcagbaagdbaddcfhfacdheeafebgchedcebdfbbacbdfebfbbheadbaafbghbcddhegegaeabhgfadhbcdbgebgbdfbehehgafcgfghhgfegadachbaddhfgegcdcbccgebedadbfhhfdhhcbafehccdaegcfafdfghagcbdcaafahhbhe...
output:
173737384
result:
ok "173737384"
Test #22:
score: 25
Accepted
time: 3ms
memory: 48656kb
input:
hibgeiodleahonhcoknbamcdjaembbgjkipoaoblcbdaokcmfpoflaiebnacohliplgpjhlliomhiodnobcjclodiofgfbpemfefnpafnmmfladjbfcdaagipmpenojjdnoamogjlcogcbpehbhhcoabkpfhnoaalobhmhahjpnmamahohpafpbpogglfglaemibdiinhgjicjpaaoagnbflimgnccnhoficoapfginjbnjblkhjlnedjlalnocldknblmhbeekfbehnoogjlknefnaclcopnlaiihjmmecn...
output:
836988517
result:
ok "836988517"
Test #23:
score: 25
Accepted
time: 10ms
memory: 49384kb
input:
sgqtkkjnsmjoacqqnidrmlonqeannkedimckddebhnhthdpbelkqcecsbcloehrnaldphtiofqomljfpmqeomsenmqtqpqjpafchelbjtpccrtsjpoqamaneifmebclnhoadrcnqjhssgiiocqogqtcrepbsrelqkmlhgqppdoocooqjccpsbkhsfiqofhcplnprkkffqlhdrpmtrtrljfjoffaceckqqffshkdqbdtssdjqohteeikbfdqjfgrndplcfhstkjjietqtsppopfhaidcgbtteodhmkfdahmil...
output:
72880325
result:
ok "72880325"
Test #24:
score: 25
Accepted
time: 4ms
memory: 47956kb
input:
vroqptfrssjnqoungjzfrdlzobofwvgtpxmeqrxkjhxcvsrebsjvvwulxlrwizpxwbcnvbxgivignbkqtvlrriepvvldvcdtghgbighrdszqtlipgwgxekobizgfejykqhlznusqoriieqzkmhjstytbzagdlhncoaddxvtlobtstucibnavlwylyhqjoglegohdlapzdktyhxgiljfwfejflaobgcfosmueolftvzrcwanhjsgqypvjrjkznrogdkmrvrmssexrgkapegfdyaoplbpzsffwptpkkccfizwq...
output:
307364626
result:
ok "307364626"
Subtask #5:
score: 0
Runtime Error
Dependency #4:
100%
Accepted
Test #25:
score: 0
Runtime Error
input:
aaaaababababbbbbbbaaaaaaabababbbabbaabbbbbaabbaabaabaababaaabbbbbabbbbaaaabbababbaabbaaaaaabbbbabaabbabababbbbaaaaabaabaaaabbbabbaababbbaaabaaaababbaaaaaababbbabbbaaababaabaabbaabaababbbbabaaabaabaaabaaaaabaabbaaaabbbabaabbbbbaababbaaaabaabbabbaaaaabaaabbabbaaabaababbabababaabaabbbbbaabbbbabbaaaabba...