QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#341780#801. 回文自动机KnownError_#0 27ms9116kbC++142.4kb2024-02-29 21:20:082024-02-29 21:20:10

Judging History

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

  • [2024-02-29 21:20:10]
  • 评测
  • 测评结果:0
  • 用时:27ms
  • 内存:9116kb
  • [2024-02-29 21:20:08]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n)  for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second
namespace KnownError_{
    constexpr int N = 1e6+5;
    string s;
    int n;
    ull h[N],hr[N],pw[N];
    ull gh(int l,int r){return h[r]-h[l-1]*pw[r-l+1];}
    ull ghr(int l,int r){return hr[l]-hr[r+1]*pw[r-l+1];}
    int sa[N],height[N],len[N];
    int L[N],R[N];
    int stk[N],tp;
    ll ans;
    void main(){
        cin>>s;
        n=s.size();
        s=' '+s;
        pw[0]=1;
        rep(i,1,n){
            pw[i]=pw[i-1]*131;
            h[i]=h[i-1]*131+s[i];
        }
        per(i,n,1)hr[i]=hr[i+1]*131+s[i];
        rep(i,1,n){
            int l=1,r=min(i,n-i+1);
            while(l<r){
                int mid=l+r+1>>1;
                if(gh(i-mid+1,i)==ghr(i,i+mid-1))l=mid;
                else r=mid-1;
            }
            len[i]=l;
            ans=max(ans,(ll)(2*l-1)*(2*l-1));
        }
        iota(sa+1,sa+n+1,1);
        stable_sort(sa+1,sa+n+1,[&](int x,int y){
            int l=0,r=n-max(x,y)+1;
            if(gh(x,x+r-1)==gh(y,y+r-1))return x>y;
            while(l<r){
                int mid=l+r+1>>1;
                if(gh(x,x+mid-1)==gh(y,y+mid-1))l=mid;
                else r=mid-1;
            }
            return s[x+l]<s[y+l];
        });
        rep(i,1,n-1){
            int x=sa[i],y=sa[i+1];
            int l=0,r=n-max(x,y)+1;
            while(l<r){
                int mid=l+r+1>>1;
                if(gh(x,x+mid-1)==gh(y,y+mid-1))l=mid;
                else r=mid-1;
            }
            height[i]=min({l,len[x],len[y]});
        }
        rep(i,1,n-1){
            while(tp&&height[stk[tp]]>=height[i])--tp;
            L[i]=stk[tp],stk[++tp]=i;
        }
        stk[tp=0]=n;
        per(i,n-1,1){
            while(tp&&height[stk[tp]]>=height[i])--tp;
            R[i]=stk[tp],stk[++tp]=i;
        }
        rep(i,1,n-1)if(height[i])ans=max(ans,(ll)(R[i]-L[i])*(height[i]*2-1)*(height[i]*2-1));
        cout<<ans<<'\n';
    }
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    KnownError_::main();
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 35
Accepted
time: 27ms
memory: 7264kb

input:

bdgedcfadbabbfgeacdgbggaefddebabbfgeacdgbefaecfddffeddacbabfcgecedacbffeddacbabfebadggfafabcdfdeaabdeecgbcecegcgecedacbfgdagbgagafdegecadfebcdbgfacdecdegecadfebbcdfdeaabdbfgcbccfcaebcecfdfccagdafaeaacbggaefddebcbecdafageeaabcbdafadcbecdbcgcbdgedcfadbcaefbdfcbgfcdeceddaaffgcedfcdcgdcgbfdddfdadgagbbef...

output:

5594

result:

ok answer is '5594'

Test #2:

score: 0
Accepted
time: 26ms
memory: 7244kb

input:

bdgfcbabegfbbbgecfbddbaceaefbebgeafdbbgaebebdabgebabacccebbaebeafbefaabdgfcbabegdbaceaefbegcaegagcdgcacccfbbfgffgcdgbccgecbdbcagbbcacccfbbfgeegfcaecbcebebdabgebbbebbgcfafbbbgbdbabgbabfgdfaggfbcbabeebbdaagacgbafecebfccdbgfacgcabefaaedadeacgdeegfcaecbcabacccebbacdbbdceeegcdbbdceeegbaccaecfbgbbebbgcfaf...

output:

7308

result:

ok answer is '7308'

Test #3:

score: 0
Accepted
time: 23ms
memory: 9024kb

input:

baeedcbgaeaabdcaeeagbeffgedegdfcggaeafeegccecbacaaaabdcaeeaggedcbbaebfbcbbbebeaeagedddgabgccdecfeegcababaddfcabcbbbebeaegabeddeedaaabebgcafgeefgeabcaafgcbcfaafgadddgdbccbcddfacfcgdeefgeabcaagbgbgdbefdcefcacafcagcfadegebcababaddfcaffbfgdfecefgafcfgddbagfgceabefcaaebagddabcbbbebeaedaddaacgfcabeffgfgeg...

output:

6011

result:

ok answer is '6011'

Test #4:

score: 0
Accepted
time: 23ms
memory: 9116kb

input:

fadabcedabffccgceafdfgebfgebdfffccgceafdfbabeebbccbcebdaabagbdcabbebbgbbdddddcfdfefcfgcaedcdfbfcgagggeacabgddfdggddgcgagfefgeafdaefefgeafdaefbabeebbccabccadccgcbbdddddcfdfadabcedabgbdegbcgdecfcefaedcffadabcedabadgbbacdfbfecccfacaaggggffddffffbcgacfgbcbeadagbfffefcfgcaedgeacabgddfgbcccdcgegbdcabbebbg...

output:

5874

result:

ok answer is '5874'

Test #5:

score: 0
Accepted
time: 23ms
memory: 8940kb

input:

efggbbfcabcdfbceagadfagaeegbegcbfbcfcgfbgdfffcdeagfcggffcacbbadedceffedbgafcbegdggabccbcecfcbfegdcbecdedfdeebebecffcaafgffabgbgedfcdabgbeffaagbffcdccaddcadgbbcadedgcfbgbdefggbbfcabddccdefedagebfbbfadfagagedffaagabcgbcffaggfebdbefdcfecegaeggggdacedbgfcdedfdeebececbfefeegdebddaeafbffabgbgedfcfcdgcaacc...

output:

5751

result:

ok answer is '5751'

Test #6:

score: 0
Accepted
time: 27ms
memory: 8816kb

input:

eafdccagcbcaeebabcggdgdfcdfgeacbgcdfbgcabdegdbbaabgecbaaagffecffedeffcedcdgcecbgfedbdgabfdcbefcecdfdfaegccbfeefdccgfbfebecffedeffcbdegdbbaabeafcbegcbagecbaaagffefcdafgageffefbcceecdffabcbbdbefcdafgageedcdgcecbgcaeebabcggfbeegdaccfdffabcbbdbcbefcecdfdcdccfcbadcecffedeffcdcgaagfaegddecgffafcdgdfcdfgea...

output:

6156

result:

ok answer is '6156'

Test #7:

score: 0
Accepted
time: 27ms
memory: 6972kb

input:

aecedcggbddbeeadcfbcaebcdceeegbcbaegcecbfefbbgbcfgegbdaggeebdfebbaeddgffdgfedegbaecedcggbdbbddadfageebfadbbegbaaaffddbdacdgbgbdggfgebaaebcfceefgaedacdeeecaccecgdcbafafccffdaedbbegagecfcdbbacceafeaabbefccgbgceeabcbaegcecbdfgacggffbdcbafafccfbfccfbgggadddddacbfeeebgdaddagcdgbgbdggffdaedbbegabcbaegcecb...

output:

5662

result:

ok answer is '5662'

Test #8:

score: 0
Accepted
time: 27ms
memory: 9072kb

input:

aaffagaebeecbgagbccbafgceadgeebdgffeceacbgcbebggfdbgcbebggfdadgceeggefaaffagaebeegfafdeeecaaffagaebebgaabbebcaaaaceagaabcabddacfebbfbefagdbcdaggeggcfagdgfddegcabcddaefcdcaaaceagaabecbgagbccbaaffagaebegbagabfddcbdgffeceacccafcbcdcagcebbbgfggbfbefagdbcgddcdaadafgcebbbgfggccafcbcdcaafgceadgeebfbgbbddeb...

output:

6006

result:

ok answer is '6006'

Test #9:

score: 0
Accepted
time: 27ms
memory: 7216kb

input:

bfbbfccggagbeddgdcbdfecaedcedefgfeaabdcaebabegdgdebbddaefebgcefgfcagdbgccacgdbcdadbeafcedeffbeccebabacedebabagadfgbdcaeaadbacgdfbgabgdbafeadgbfbecfccbfgeecabgfafacefbgbcebbddaefebgadbacgdfbgdagefcefgeddgagggedefgafgdbgacffbeccebabgbeebbdafegbeddgdcbdcefgfcagdbacafdggbacccebfdcddgadbeafcedecefgfcagdb...

output:

5966

result:

ok answer is '5966'

Test #10:

score: 0
Accepted
time: 27ms
memory: 8892kb

input:

gbegegfcdbbdagefbgadbfafadedacdbbffcbagfcgebcbbeabedbedegbdbebfcbcbffddeadadffffadccgfebbadbdcdfecbadbfbfeaefadfdgfeaebfcbgdbfbcfebdagefbgadedgaeecegbeaffcddaggcafcddaffccafcddaffcgfdegffaaeggadabffaddbaebcffcadbaebcffcabfafadedacdabgaccfdedbfbfeaefadeadadffffeaffeffaffdbbffcbagfcbbaebfbfgebfcbcbffd...

output:

5997

result:

ok answer is '5997'

Test #11:

score: 0
Accepted
time: 24ms
memory: 6920kb

input:

cihgfkaabfcjeehlggeihjadhfkjdfegfiibdidefcdehjgkkhjfldaeelddklklgjdkbeidjahlkjligjdhjffddfljlbejibdgllkddjcccddajbkfjkfkecegichgklaeccfcgjidfkgckhafjeabajihcchghkchjfjkkbeeajcghaillghbcidglkcldfkkkegjdgcjfecjbaekhcadlfefcgagjdgebkgafagdeijfkgcebkkefbblkdlajccehgiidfahkfblfjafgikaacjfddalheeelcjifafk...

output:

3028

result:

ok answer is '3028'

Test #12:

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

input:

xbqpbhaecvtkxghbvkmwarwpsrjwhgqnojrdskecifmlbcbctlolyjdswhhclojnnfcynqqfvcchkuehqxgbuaqsnwotkfskrnmkwoonkhcvwwmplrxlfjvaepipcegcekikifaxpqclhwmstfifhnawojfngbphtfftcewckdeseoxnfwdtymodyqlewkbcjwtyufrevupfapglxllumkvspbebirrytpcmodoncourbanwyylnwugxujjtdwgyjipayvmgucnqnrpwqplwpdsocasjykituacpagydmymp...

output:

1481

result:

ok answer is '1481'

Test #13:

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

input:

tobdfhlrhrypwivkkpiugptzudfkxlxkprusxvwlhwqinpfwdxelgpgrfkmkjfoovtwrinkdpehykvkksgswkikxbowttkqdpkvevjbrigecweqaehejnugxnukpqcueewuazbzfbijnvrqlimbipyeyxhszbdqeduibykofvyqbhgxecowsrrqzpboxzafxinkqtxgcavjiezzjoqweqtupcxgjtxgxxzanmwamwhpzyxqxgouhgnkvqglgunyqnawrwlqpxhtdscimoedcwpuwbqhiygbfoshwjkvquisd...

output:

1437

result:

ok answer is '1437'

Test #14:

score: 0
Accepted
time: 24ms
memory: 6972kb

input:

epkkjklkmnmgajmqaqfdepfdlhockegkcpekmdmfaphqmqpqopjhngpblcephamlqmekfnqjoknnkmbodonbfkmobeddbmplkallmeqipgdimpiqfeficqknaeapllechkpdamdpeoanqoghnlhfggaihfnppbmfdnjcokjfakladhdmdiejcecaheilbeoebgfgcfjlngiphlqeemgopopmonfcccpjhleijllfngdomcqhkfcidmkgqqgoqegikioaoodkokhaklaihlenckifchcjoibffdjqflgqfmdo...

output:

2190

result:

ok answer is '2190'

Test #15:

score: -35
Wrong Answer
time: 27ms
memory: 6976kb

input:

acbabbcbaacacabcbabcaaacaabcaaabccbabcbcaaaabbcabaaabbacbcaaabcccbaaccbbcabbaaababccbbacacbabaaacbacbcabcbbcbabccccccbbaacacbcacacabbbbbbcbcaaacbcbacccaabbbabbbcabccbabaabcbccbacccccbabbbbbbaaccaabbccccbabbcaccbaccaaababbcaaabcbaaacbbaccbbcbacbccacabbccacbbacbabbcabcbbaccaabbccbcbbcbccabcbccabbbabcb...

output:

11725

result:

wrong answer expected '15924', found '11725'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%