摘要: 题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的。 思路: 应用到kmp中nex数组的性质,数组的最小循环节是L=len-nex[len],证明见http://www.cnblogs.com/w 阅读全文
posted @ 2019-11-03 17:35 Frank__Chen 阅读(142) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/HDU-3336 题意:给定长为n(<=2e5)的字符串s,求s的每个前缀在s中出现的次数之和。 思路: 用dp[i]表示以s[i]为结尾的子串是s的某一种前缀的方案数,那么dp[i]=dp[nex[i]]+1,因为[nex[i]-(i 阅读全文
posted @ 2019-11-03 16:14 Frank__Chen 阅读(140) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.org/problem/P5410 题意:有两个字符串a,b,要求输出b与a的每一个后缀的最长公共前缀。输出: 第一行有lenb个数,为b的next数组(特别地,next1为lenb) 第二行有lena个数,即答案。 思路:扩展kmp模板,涉及字典树,后 阅读全文
posted @ 2019-11-03 11:32 Frank__Chen 阅读(210) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-2406 题意:求出给定字符串的周期,和poj1961类似。 思路:直接利用next数组的定义即可,当没有周期时,周期即为1。 AC代码: #include<cstdio> #include<cstring> #include< 阅读全文
posted @ 2019-11-03 11:18 Frank__Chen 阅读(308) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/problem/POJ-1961 题意:给定一个长为n的字符串(n<=1e6),对于下标i(2<=i<=n),如果子串s(1...i)是周期子串,输出其最大周期。 思路: 考察对kmp算法中next数组的定义掌握,如果(i+1)%(i-j)==0 && 阅读全文
posted @ 2019-11-03 10:58 Frank__Chen 阅读(175) 评论(0) 推荐(0)