P3804 后缀自动机
传送门
题目描述
给定一个只包含小写字母的字符串$S$,
请你求出 $S$ 的所有出现次数不为 1 的子串的出现次数乘上该子串长度的最大值。
输入输出格式
输入格式:
一行一个仅包含小写字母的字符串$S$
输出格式:
一个整数,为 所求答案
输入输出样例
输入样例#1:
abab
输出样例#1:
4
说明
对于$10\%$的数据,$\lvert S \rvert \le 1000$
对于$100\%$的数据,$\lvert S \rvert \le 10^6$
分析
既然是后缀自动机模板,自然用后缀自动机来做,具体的,就是建立后缀自动机,然后再Parent树上DFS,答案为子树大小*节点的len长度的最大值。
Update:以前没能弄清为什么siz[…]=1写在建后缀自动机里就行,写在DFS里就挂,后来Achen告诉我有些点没有siz值。
代码
1 |
|