Manacher&PAM

题单介绍

```cpp #include<bits/stdc++.h> #define maxn 2000010 using namespace std; char s[maxn]; int len[maxn],n,num[maxn],fail[maxn],last,cur,pos,trie[maxn][26],tot=1; int getfail(int x,int i){ while(i-len[x]-1<0||s[i-len[x]-1]!=s[i])x=fail[x]; return x; } int main(){ scanf("%s",s); n=strlen(s); fail[0]=1;len[1]=-1; for(int i=0;i<=n-1;i++){ if(i>=1)s[i]=(s[i]+last-97)%26+97; pos=getfail(cur,i); if(!trie[pos][s[i]-'a']){ fail[++tot]=trie[getfail(fail[pos],i)][s[i]-'a']; trie[pos][s[i]-'a']=tot; len[tot]=len[pos]+2; num[tot]=num[fail[tot]]+1; } cur=trie[pos][s[i]-'a']; last=num[cur]; printf("%d ",last); } return 0; } ```

题目列表

  • [CERC2019] ABB
  • 【模板】Manacher
  • [POI 2010] ANT-Antisymmetry
  • [国家集训队] 拉拉队排练
  • [国家集训队] 最长双回文串
  • [THUPC 2018] 绿绿和串串
  • 【MX-X21-T6】[IAMOI R5] 希望有羽毛和翅膀
  • [ZJOI2009] 对称的正方形
  • 【模板】回文树 / 回文自动机(PAM)
  • [APIO2014] 回文串
  • [SHOI2011] 双倍回文
  • [JSOI2013] 快乐的 JYY
  • [COCI 2021/2022 #6] Palindromi
  • 「TFXOI Round 2」String
  • 回文子串划分计数