随笔分类 - 字符串
POJ1743 后缀数组
摘要:``` /* POJ1743 后缀数组 求字符串中至少重复1次或者且不重叠的最长长度 这里重复指的是两个字符串对应位置相减的差相等。 读入字符串后,前一位减后一位,生成一个新的字符串,转化为求不重合最长重复子川问题 (对应位置相减的差相同,意味着两个字符串增长的趋势相同,所以 一上来相减相当于把趋势给提炼出来)太菜给跪 Author: lcy Time: 2017-10-6 */ #includ...
阅读全文
Hihocoder1407 后缀数组
摘要:``` / Author: lcy Time: 2017 10 6 Hihocoder1407 后缀数组 求字符串中至少重复1次且不重叠的最长长度 与之前的题目一样,只不过这次加上了“不重叠”这个条件 最长长度满足二分答案的条件,即如果不存在长度a的连续序列满足 条件,那么长度大于a的连续序列更不可
阅读全文
Hihocoder1403 后缀数组
摘要:``` /* Author: lcy Time: 2017-10-5 Hihocoder1403 后缀数组 求字符串中至少重复k次最长的长度 既然重复,那么假如把后缀排好序,重复的片段一定在一个区间内 一段连续LCP区间内的最小值即为该区间内最长的公共前缀 现在已知了LCP,问题转化为求长度至少为k的连续区间内LCP的最小值的最大值 因为增加区间长度,并不会使该区间的最小值更大,即不会使得结果...
阅读全文
HDU2594 KMP
摘要:``` / hdu2594 给你两个字符串a与b,求a的前缀与b的前缀相同的最长长度。 可以马上联想到MP算法中的f数组,其中f[i]正是s[0...i]中前缀与后缀相同的最长长度 把两个字符串连在一起, 中间加了一个特殊符号 ,这样保证前缀与后缀不会跨越两个字符串 多组数据,需要每次将f清零,不然
阅读全文
POJ3691 AC自动机 dp
摘要:``` /* poj3691 AC自动机 dp lcy 2017-9-24 给出多个危险基因串,再给出一个基因串,求最少修改几次基因串使得其上不包含危险基因串。 dp部分已给出超详细注释 最重要的一点,AC自动机上的每个点都对应一个状态,状态之间通过字符转移。(个人粗浅理解) */ #include #include #include #include #include #includ...
阅读全文
Codeforces835d 发现规律+打表
摘要:``` //cf835d 发现规律+打表 / 连T几次后才发现规律。。 多写几组看出,k 回文串的必要条件是其本身是回文串, 在这个基础上,只要保证它的左半部分和右半部分分别都是回文串即可。 (如果用左半部分和右半部分比较是否相同必然超时。。) 这样一上来用n^2时间找出所有回文串并标记,接着从小到
阅读全文
HDU6096 AC自动机(添加特殊符号)
摘要:``` //hdu6096 AC自动机 / 参照了:http://blog.csdn.net/calabash_boy/article/details/77101529 利用一个很巧妙的方法将这道题目转化为AC自动机题 对于每组前缀和后缀,将他们拼成后缀+' '+前缀的字符串, 将所有这些组当成模式
阅读全文
POJ2778 AC自动机 矩阵快速幂(求路径数)
摘要:``` / poj2778 congyu liu 2017 9 22 AC自动机+矩阵快速幂 详见http://blog.csdn.net/morgan_xww/article/details/7834801 感谢博主 先将不能包含的基因组单词跑一遍AC自动机建图, 接着,问题转化成,求从trie树
阅读全文
浙公网安备 33010602011771号