题目链接:http://vjudge.net/problem/viewProblem.action?id=29342 题目大意:给定字符串,找到每个前缀的最大循环节的个数. 首先当然是kmp预处理,接下来的问题是 怎么找循环节? 用反证法可以证明,如果f[i]~i之间的字符串能构成循环节,则该字符串就是i前缀对应的循环节,否则循环节不存在. 对每个前缀找到尾指针对应的失陪位置后,不需要按失陪指针继续往前寻找了(否则超时). 只用判断上个位置到尾部的字符串是否是循环节(长度是否有整除关系),即知循…