本來是個回文自動機模板題
但是也可以用字尾自動機ac掉
先跑manacher
這可以識別所有的回文串
然後放進自動機裡暴力跑就是了
#include#include#include#include#includeusing namespace std;
typedef int int;
#define ll long long
const int n=1e6+2e5;
char s[n];
struct samsa[n];
int cnt,last;
int idx[n];
ll siz[n];
int rl[n];
int c[n];
int a[n];
int fa[n][22];
// int g[n];
ll ans;
inline void insert(char c,int id)
else
} siz[np]=1;
} void add(char *s)
for(int i=1;i<=cnt;i++)
} }void get_siz(int s,int t)
void print(int s,int t)
while(i-rl[i]>0&&s[i-rl[i]]==s[i+rl[i]]&&i+rl[i]<=len)
if(i+rl[i]>maxright)
} maxright=0;
pos=0;
for(int i=1;i<=len;i++)
if(i+rl[i]>maxright)
} }void solve()
}solution;
int main()
省選專練之後綴自動機 TJOI2015 弦論
這個看似模板,但是我還是沒有理解透徹,畢竟寫得慢還是主要比不過抄碼的人。但是在zjy鉅子本色出演的題目,我還是請教了zjy本人,我大抵是會了。這個本身有兩種情況 1 t 0求right集合 又叫endpos集合 2 t 1求siz集合 這個都好求 然後就是乙個類似於可持久化線段樹的查詢方式了 從小到...
省選專練之後綴自動機 HAOI2016 找相同字元
因為我太菜了,我寫了lcs就忘了 溫故而知新的重要性啊 和lcs 幾乎一樣 又乙個算貢獻的問題 now pre的貢獻為siz now step pre step 這個時候可以預處理 但是當前匹配串長度並不一定是now step 這很重要 include include include include...
省選專練(學習)字尾自動機SAM(超詳細)
先談我對字尾自動機的理解 這不完全正確,它可以識別所有子串,於是也可以識別所有字尾 錯誤字尾自動機極限時間複雜度是o n 2 1 比sa和s tree優 然後是字尾自動機可以幹什麼 什麼?你說把他轉成lis跑nlogn?既最長公共子串。所以不是lcs最長公共子串行。然後建出了sam就好了 建的過程不...