QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#794482#8954. 一般路过串串题misfits#100 ✓473ms278096kbC++142.7kb2024-11-30 14:31:052024-11-30 14:31:06

Judging History

This is the latest submission verdict.

  • [2024-11-30 14:31:06]
  • Judged
  • Verdict: 100
  • Time: 473ms
  • Memory: 278096kb
  • [2024-11-30 14:31:05]
  • Submitted

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<<1];
  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;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 3ms
memory: 38540kb

input:

aababbabbaaabaabbaabaabaabbabbabbbbaabbbbaabaaabababbabbbaaa
bababaabbbbabbbbbabbbbaabbaabaaaababbaaaabbbaabbaabbbbabbaba

output:

496507152

result:

ok "496507152"

Test #2:

score: 10
Accepted
time: 9ms
memory: 40632kb

input:

eececaecacbeabdeeaccdbbebbabddecebdcdebdbccbbddaaaeedaaebcdb
acdaabeaaaeeedcadcaeeaaeaaeeceaebbedcadaaebaaaaddbeedeeabaea

output:

580397857

result:

ok "580397857"

Test #3:

score: 10
Accepted
time: 0ms
memory: 40640kb

input:

fcdfggfggcbedeccchceggdfedgecghhacegbbehegdhcgbefdadbeaghgcc
ebbeegcfhhedfhchfdechefaafgaeacacdfgbhdbghedghdechgbdecebaef

output:

380084227

result:

ok "380084227"

Test #4:

score: 10
Accepted
time: 4ms
memory: 40652kb

input:

boodjlblcmmbdiejhhfcomlcingbgkhhifkbalmchidkbidipjkofgandgoj
afaikkjkfgnmoagpikiidcgiigfmmdfmjgedanogdlccljbedjmgmcoeidae

output:

171472585

result:

ok "171472585"

Test #5:

score: 10
Accepted
time: 3ms
memory: 42564kb

input:

ksadeedmbrojirllkmtrkdhofjgjetrojrkfnnrhceqkbhnllfanahhgiohm
ffsooatinippmdrfcdiniihahospagtflklfkknqlidddnbfqjtesgqfmpnn

output:

122853177

result:

ok "122853177"

Test #6:

score: 10
Accepted
time: 0ms
memory: 38528kb

input:

tqqeyqzvmvdnrgbdtwezhvpxjehcpehiwxoxnpsakxpedqhzmnywjovuucwj
idthdhgqwasjxincaubpjclssinmnlxxrqeuxkmvkfejpropnrextrrlcgxp

output:

113266102

result:

ok "113266102"

Subtask #2:

score: 20
Accepted

Dependency #1:

100%
Accepted

Test #7:

score: 20
Accepted
time: 0ms
memory: 40816kb

input:

aaababbbbbbaabbbbbbabbbabbabbbabaaaabbabbbbbaabbaaabbbbaabbabbbbaabbbbaaabababaababaaabaaaabaaaaabbbbaabbaabbbbabaabbbabaaaaaaaabbaabaabaaabbabbababbaabbabbabaaaaaaaababbbababababaaabbaabbbbbabbababbbaabaababbbabbbbaaabbbababbbbaaabaababbbaabbabaabababbababaaaaabaaaabbabbbbbabbbaaabbababbabaaaababab...

output:

520547094

result:

ok "520547094"

Test #8:

score: 20
Accepted
time: 6ms
memory: 44748kb

input:

adcbdbecdaabaecdaadbbceecedbeababddbcedaeabceaabcbdadcebdaedaaadbdeaccceaabbaddeebaddebebcceeccccccbbeabbbdbcdbbedbeeeabdcadbcaabacabcbdbbbdeebacdccecddcabdcdebdbbaaeabbbbcbdadbccaecdbcbccaddabbcbacadebdcedccaadbcdacaeeccecdcabcebddabcebaedccebcbdeaebcabccdbccecdedabecaebeddbcddcdbcacbacccaceadeceac...

output:

782266849

result:

ok "782266849"

Test #9:

score: 20
Accepted
time: 4ms
memory: 40600kb

input:

baecgaafgfbdfffcgbffdadabbchacebcadaadghahcgehacafhdfcdgefgehcfbdacdeacehecddcfdaegfgbecgcgfedhhebdabfeachdfbabbehhcbdfhfdfbhebdfedgbhgdgbbabcbfbahcdecaahchddcahfgaeeedffdghedafcdahfbhedghgahffffbbbegghefehgbbbbagchcffbdfaacfgeghaegaadehbfacgbabacggdcddcgaacgaccgccbgbddcfcdgddabbedfhgdagfgghbecdgafb...

output:

367143412

result:

ok "367143412"

Test #10:

score: 20
Accepted
time: 0ms
memory: 40592kb

input:

hdnhnmolcjkclidbagdicfpnpjfohpgodegaaelcofejnhkonngpdgmcpbagbgfeklekppmneahbhbpepgecmaelcebdkghfblpbkmoomfpehpigfmibnmmpanckejpfepgolfmhkllbkehpapanlmmlkogohfdlekjppfhjbcllgclhclenibjcppahedcjnmimbpgccboidjpfeedmfmoelolpcoipkbmlacocdmlgfkmjopgdleigddffboelpahpcfcfbnmghipghfjckbinfncglgckhjkjomppjlfa...

output:

661539752

result:

ok "661539752"

Test #11:

score: 20
Accepted
time: 3ms
memory: 42676kb

input:

bcslnfnhcghmeifrrqjktgkhenisgkeheckktpjcbqgrelonaqetcgsslgqrimqmgscsndaptsepcljchfnbllloradfmljljejchbjhtoobfdpeiirllifiiifblhmalnpsoernkehhhclidalojjprjmkbtobkhibbnshpcgpciscdtnsiofferqfrkstkhadmlchfichjbbmmhcabhfffncoqbngigbaretcmocbhdgtkiteiqjfcmlsneqncrftbeogsqtrlfqoghsgehdgloqqkmjnboeplsbbgatss...

output:

507358998

result:

ok "507358998"

Test #12:

score: 20
Accepted
time: 0ms
memory: 40556kb

input:

vkypxiucqbsajxealvcbnymcevlaehbzrbqqjlsbomczkiaxdeatfoxjjkkotnpmogcatvbhjfhvojstpsmujlesvqgqfyctefvxczglenhsyboowcifooxlggcleehklchnbpbificdlqthteohsmubuwmadtkowtezifjnpmtcemkxsyglmbmizaieuutsnztygdnvpgztvjtnkbaycojepriloddbcwbibpfsxfouqhkcikdnbmtsdbfthivlgywkpdcpkqjdxtfigixjwqbctgvcqqoyrkignlvabhdb...

output:

138681994

result:

ok "138681994"

Subtask #3:

score: 30
Accepted

Dependency #2:

100%
Accepted

Test #13:

score: 30
Accepted
time: 7ms
memory: 41448kb

input:

abababbbbaabbbaabaaababbabaaababababababbababbbabbbbbaabbababababbbbababbbabbbbaaabbbbbaaaababbbaaaabbabaaabbbabababbbbbaaaabaaaaaaababaabbbabaabbbaabbabbbabbaabbabbbbaaabaaabbbabbbaaabbbbabbbabaaabaaabaabbbaaaabaaabbbababababbaabaaabaaabaabaabaabbbbabbbababaaaabbbbbabbaaaaaaababaabbbbbbbbabbbababbb...

output:

775805062

result:

ok "775805062"

Test #14:

score: 30
Accepted
time: 3ms
memory: 43140kb

input:

dadbaeeadbddeddcebeeadbacdcabebcebdcbeebcceccebbbccdaadeaaaebbbcabeddaeacbecccadeadaabbbdbabadeabaaebeaacecacdabdedacadbddcaddaaececebcbbcbacebcdccaebdcbddabacaddecacdbbcbdbeabdcbcacacaaebabeabdcbcdedccbacdbcdeadbccbcbdcecabcceacedebceaacddcaedcbaeaadbedebdedaaccdbdedbeededbbbdcddcaebbbbcbdcaabbecac...

output:

130828441

result:

ok "130828441"

Test #15:

score: 30
Accepted
time: 0ms
memory: 41344kb

input:

aecdgaeegafcgfdbbbghfheghchdabcbfeedfbadbffhcbadchchghgfbfacgcddhhheahhbeebgfbbhadhgcfeecegahbdgaccbbbcffdddfecfabecgagaeeadfebggdhaebfcfbfcfhhfbdahdgaadadaefgdafdfhahebeghdfeebeeedeegeagbffefchcbhbfbfdabbefcbbgefdccdadafhfagabfbhghcgaddffeheaehcgccbcaahaghbebacadbagefeaeaabhchbebdebceacgedggdbhdada...

output:

97380744

result:

ok "97380744"

Test #16:

score: 30
Accepted
time: 4ms
memory: 41284kb

input:

pblokjmgoadcmjkfmomjmaekljffdmbcnmbhfnndnbfjkaogokpkkdegmjlpfmbcjcjopgcmhhfbhehfogpjjdpfmkebggdpimoidaekhkmpodemkefdhejeonffdjemfceicidkcpjacnnmbcajhjnfgckklpgbbkjecmoflhfoeckgfkpmdmbkomeklklmeeagbolmfbkkdfaippedlgnjcbdnlojpdkfeibaoclifaiophccciplkaphlnbkalaedbfbdajiabgpijckbbgmcfdnceidpihdjmemmoemp...

output:

602469189

result:

ok "602469189"

Test #17:

score: 30
Accepted
time: 4ms
memory: 39032kb

input:

bcanoaimlmscgbdkdptbcsoacfqbjkfcegpsgplrtblfogqrbpkenrehcnamdggtmcskjbtjccoiicfjrqfcfcbhpclkisjmmhobancohrcptiqjqcdbqfaltmbhkclocfpcksrjhleslmthgdacabntngspbbjdsqrigojnsfejrdregjsscmrhkhclidggaegskpmiaisslhokimilqsstfncgqjmifthpglqhtgrkflmnpnqmlhdiafoigtrlkqtqhhdsnmakpnplgmpjtsrldetkdinnembdtrnejoof...

output:

640668306

result:

ok "640668306"

Test #18:

score: 30
Accepted
time: 0ms
memory: 41084kb

input:

gkyjquqqernkdsxsifohrnklzzxnikoounxmjpcnirxmjueucsdtipehodwwplmlalxjabwjsvvesbyuvbpdtvmhajeqwsbyebhecfpvambsnzmlcdovydfzojrkdskhvroywdvyswrfvfszljxjmckanbmqwwyrpopntkllietdklfvucgierkruwhsuhkjvbwpoicwmvcyhhvdlcmpvwirvrkpzwzwzvnpfqmslqsuzoyksmbpkjgfasvbqwyqrnfzdttrlllkbjwtxxkigrnjlkkcgisawzzbtssgferh...

output:

242076649

result:

ok "242076649"

Subtask #4:

score: 25
Accepted

Dependency #3:

100%
Accepted

Test #19:

score: 25
Accepted
time: 10ms
memory: 51816kb

input:

abbabbbaabbabbaaaababbbabbbbbaabbbbaabaaabbabbabbababaabbbabbbaaaabbbbbbbabababaaaabaaaaabbbabaabbbaababbbbbbabbaabbabbaaaaababbbabbbbbbbaaabbabbbaaababbabbaaabbbbababaababbababbaabbbabababbbabaaaaaabbaaabbbabbaaabaaaaabbbbaabaababbbababaaaabaaabaababaaabaababaaabaabbabaaaabbbbbaabbabaabbabbabaabbaa...

output:

743975419

result:

ok "743975419"

Test #20:

score: 25
Accepted
time: 3ms
memory: 46256kb

input:

dadbceeaceadceeceeedceceadbccceaceeaadaceaabeaaabaddecaebbcddddbecdecacdcecdbcddccdeeddcecaacedbdbbdbabaedddbbbaabecaaebeabcbeaecdcadbaaeddcabdaccceecbeecdaeabbeeeeaebbaeeaccccbcbdbceaccabebedcdaeabbadacaeeccbeacdeeadedabdaadaadebdcdaeecedaaeadaebbeebcebcdcebbccaceebbdacabcedbaecbabbcbebacedeeceaecb...

output:

950379326

result:

ok "950379326"

Test #21:

score: 25
Accepted
time: 0ms
memory: 48812kb

input:

eeghdafhfgadahfdccfehbbabhhfeceahcacdfcadcddbaheceabfbcgabefdafccfffchfgbabcaagcegechgaahefcecfhacecbcacccedcdfhbbbbhbbgggbcagbaagdbaddcfhfacdheeafebgchedcebdfbbacbdfebfbbheadbaafbghbcddhegegaeabhgfadhbcdbgebgbdfbehehgafcgfghhgfegadachbaddhfgegcdcbccgebedadbfhhfdhhcbafehccdaegcfafdfghagcbdcaafahhbhe...

output:

173737384

result:

ok "173737384"

Test #22:

score: 25
Accepted
time: 3ms
memory: 49340kb

input:

hibgeiodleahonhcoknbamcdjaembbgjkipoaoblcbdaokcmfpoflaiebnacohliplgpjhlliomhiodnobcjclodiofgfbpemfefnpafnmmfladjbfcdaagipmpenojjdnoamogjlcogcbpehbhhcoabkpfhnoaalobhmhahjpnmamahohpafpbpogglfglaemibdiinhgjicjpaaoagnbflimgnccnhoficoapfginjbnjblkhjlnedjlalnocldknblmhbeekfbehnoogjlknefnaclcopnlaiihjmmecn...

output:

836988517

result:

ok "836988517"

Test #23:

score: 25
Accepted
time: 4ms
memory: 49604kb

input:

sgqtkkjnsmjoacqqnidrmlonqeannkedimckddebhnhthdpbelkqcecsbcloehrnaldphtiofqomljfpmqeomsenmqtqpqjpafchelbjtpccrtsjpoqamaneifmebclnhoadrcnqjhssgiiocqogqtcrepbsrelqkmlhgqppdoocooqjccpsbkhsfiqofhcplnprkkffqlhdrpmtrtrljfjoffaceckqqffshkdqbdtssdjqohteeikbfdqjfgrndplcfhstkjjietqtsppopfhaidcgbtteodhmkfdahmil...

output:

72880325

result:

ok "72880325"

Test #24:

score: 25
Accepted
time: 7ms
memory: 44516kb

input:

vroqptfrssjnqoungjzfrdlzobofwvgtpxmeqrxkjhxcvsrebsjvvwulxlrwizpxwbcnvbxgivignbkqtvlrriepvvldvcdtghgbighrdszqtlipgwgxekobizgfejykqhlznusqoriieqzkmhjstytbzagdlhncoaddxvtlobtstucibnavlwylyhqjoglegohdlapzdktyhxgiljfwfejflaobgcfosmueolftvzrcwanhjsgqypvjrjkznrogdkmrvrmssexrgkapegfdyaoplbpzsffwptpkkccfizwq...

output:

307364626

result:

ok "307364626"

Subtask #5:

score: 15
Accepted

Dependency #4:

100%
Accepted

Test #25:

score: 15
Accepted
time: 473ms
memory: 278096kb

input:

aaaaababababbbbbbbaaaaaaabababbbabbaabbbbbaabbaabaabaababaaabbbbbabbbbaaaabbababbaabbaaaaaabbbbabaabbabababbbbaaaaabaabaaaabbbabbaababbbaaabaaaababbaaaaaababbbabbbaaababaabaabbaabaababbbbabaaabaabaaabaaaaabaabbaaaabbbabaabbbbbaababbaaaabaabbabbaaaaabaaabbabbaaabaababbabababaabaabbbbbaabbbbabbaaaabba...

output:

756138565

result:

ok "756138565"

Test #26:

score: 15
Accepted
time: 284ms
memory: 228616kb

input:

eebbddedeedabaaaccbadddbacebbeecebdeeccabcaaeaaccdcdbcedeaeabeccccbdeaddaedebadbdaeeeaedceaaaedcbbadedbeebaddeebeacecbebccbcbbedabdecbadcabaecdbeccbddcbabdceacebaadbacadaccdaacecbcbaaddbaddeeeeaacceecbbcedceccccaccdbabbdaaaaaaeabeccceebeaabccbbcbeecaddbdadaeadadadebbddbeaecededcdbcbeabccdaadaddebeaa...

output:

323368

result:

ok "323368"

Test #27:

score: 15
Accepted
time: 207ms
memory: 217792kb

input:

dcbebgedhgbhcfgbdeaccaffahbdfcgaehffgbafabecgcdbhedbeaheaaafcgfggcdeedbeeggcabehfhbcaagaagfdfcbdffhbaaffgdhhedgcdhedhcdabadgcebhbaacafhhaggfcehfedadfddgdgefdffeffggdffdedaghhddcdhagcgbbdgeadagbheeebhaeagdhbhcegccaadbdcfefgcgfgcbhccdcagbcfdgdfbegefbgdfebhcgffhehbhbcgcedgchdddbaadgdaceafcfcccbdbcfhebd...

output:

696242378

result:

ok "696242378"

Test #28:

score: 15
Accepted
time: 195ms
memory: 202252kb

input:

gfbbncgcpoodckopappjdbndfpionopddaebcldcjbfmlelmdkfglcjacbpppocdpgebbhdljjhencaanggiipjkbijagldfchhdpkoidfmainafdgnlggghophfllkncbabmpjpegamdabghpbnfheehljcgdpjfpkboeadkapnbbdiaeffmjjdecflgeeldomccmfmnejofmgfbllneeaihfdnjhimgeoiadfniolnlbdmmojacjjjomgheodkcccdfhangmlbnonkmgkopdinaoeenhopjacpidmophpm...

output:

568511191

result:

ok "568511191"

Test #29:

score: 15
Accepted
time: 179ms
memory: 207468kb

input:

qeqnqejgndgqpcfbkosggdhlidbpkecgatarpjpieoqlqbntplfngnroqsbgoqfohfdcgtddntobbhaikgoqllctbqrpecbltffseibjahknhdbrjhgmsalliigmlidkfjabjbkjbmcipqredpioitfqiebleqnjfokhhaqieliahgqcnfibegkeklhohbpfhfegrapbdpncbkrhpfillkibnphbicshtcoiobkkqdmkfjrmhresiembltomoetnsncfoepdttnfbkjihfghjsbbkhnqmebcsdhetohloaip...

output:

650472067

result:

ok "650472067"

Test #30:

score: 15
Accepted
time: 159ms
memory: 205076kb

input:

dokgwkdznhzgcgvuaxilttzsxplqroyucidatgaipbpthkqkjyvctwxqmijdwhaardcmlexdgmwpymzhnwlgtkzhsimqroskrvxfzukfigvgvwpkvcsqnrzfblysaqdtncapwkuetrmqqdclfudumccppakrsplgrnvpyrttlhjbmlothtotvsjkstcmipubcrqcjlvwugxgtnbbgrwdjhndcrqmiknncdpnqnlkviqrxuudlqgvavycpqrxdemhkcuarflopdfmzzrlsxisuiwjznjcuvlezfgsmrhdxmrw...

output:

745158025

result:

ok "745158025"