回文樹複習

2022-05-21 01:34:51 字數 622 閱讀 9221

初始有兩個根01,分別對應奇偶,長度為0/-1,0的fail是1

如果跳到了1號點,那麼新建的點的fail是0

種數=點數-1,某個串結尾的回文子串個數=fail鏈長度

擴充套件要考慮匹配以及邊界

洛谷5496

#include #define fo(a,b,c) for (a=b; a<=c; a++)

#define fd(a,b,c) for (a=b; a>=c; a--)

#define ll long long

//#define file

using namespace std;

int tr[500011][26],fa[500011],sum[500011],len[500011],n,i,j,k,l,ans,len;

char st[500001],ch;

int main()

l=tr[l][ch-'a'];

ans=sum[l],printf("%d ",ans);

ch=getchar(); }

fclose(stdin);

fclose(stdout);

return 0;

}

回文樹 模板

類似ac自動機,樹裡面每個節點代表主串的乙個回文子串,且每個回文子串都不同 主要功能 1.求串s字首0 i內本質不同回文串的個數 兩個串長度不同或者長度相同且至少有乙個字元不同便是本質不同 2.求串s內每乙個本質不同回文串出現的次數 3.求串s內回文串的個數 4.求以下標i結尾的回文串的個數 con...

回文樹總結

寫馬拉車還不如寫回文樹。by 陳菊開 原 請轉2017年集訓隊 回文樹及其應用 by翁文濤 我感覺回文樹 回文自動機相較於字尾自動機還是要好理解一點的 像我這種菜雞到現在還不是很懂sam 回文樹,顧名思義,就是要把乙個串的所有回文子串丟到一棵樹上。那要向sam一樣記錄個什麼鬼 endpos 啥的嗎?...

回文樹總結

首先,回文自動機就是回文樹。不愧是 texttt 在 csp 模擬賽裡面考 pam 然後全場就我切了 求乙個由小寫字母 a z 構成的串的本質不同的回文子串數量。首先考慮把每乙個子串列舉出來,然後判斷是不是回文串再把它 hash 進 map 或者是 hash table 裡面。複雜度 theta n...