題意:
給你乙個由小寫拉丁字母組成的字串 ss。我們定義 ss 的乙個子串的存在值為這個子串在 ss **現的次數乘以這個子串的長度。
對於給你的這個字串 ss,求所有回文子串中的最大存在值。
#include using namespace std;
typedef long long ll;
const int maxn = 300005;
char str[maxn];
ll ans = 1;
struct paa[maxn];
int last,tot;
void init(int n)
a[1].fail = 1;a[1].len = -1;
a[0].len = 0;a[0].fail = 1;
last = 1;
tot = 1;
}void add( char* str,int n )else
last = a[i].ch[ c-'a' ];
}}g;ll sz[maxn];
struct palindromic_tree
t[maxn];
int last,tot;
void init()
void extend(int c,int n)
last=t[p].son[c];
sz[t[p].son[c]]++;
}};struct orzabs
int find(int x)
void add(int t)
last=ne[cur][t],++cnt[last];
}ll count()
return re;
}};int main()
for( int i = g.tot;i >= 2;i-- )
cout << ans << endl;
}
LOJ141 回文子串(回文自動機)
雙向pam板子,同時維護最長回文字首和最長回文字尾,和原來沒什麼區別,只需要注意當整個串成為乙個回文串的時候需要維護一下兩個指標。include define ll long long define re register define gc get char define cs const nam...
APIO2014 回文串 回文自動機moban
與manacher 字尾自動機倍增匹配相比快太多。manacher sam寫法 以上是回文自動機的速度 以上是manacher sam的速度。感受一下。受個人lj 的常數影響 回文自動機是乙個類字典樹,構造方式又類似於ac自動機。其每個結點就代表了乙個回文串 這與字尾自動機乙個結點代表多個字串不同 ...
回文自動機
回文自動機,又叫回文樹,是由俄羅斯人 mikhailrubinchik於2014年夏發明的 這是一種比較新的資料結構,在原文中已有詳細介紹與 實現。回文樹其實不是嚴格的樹形結構,因為它有是兩棵樹,分別是偶數長度的回文樹和奇數長度的回文樹,樹中每個節點代表乙個回文串。為了方便,第一棵樹的根是乙個長度為...