黑字:认识红字:要学未添加:要学├─模拟├─字符串│ ├─字符串基础│ ├─kmp│ ├─trie│ ├─ac自动机│ ├─后缀数组│ └─后缀树├─搜索│ ├─深度搜索(dfs)│ ├─记忆化搜索│ ├─广度搜索(bfs)│ ├─双向广搜│ ├─回溯│ ├─A*│ ├─迭代深搜│ ├─IDA*│ ...
分类:
其他好文 时间:
2014-08-24 14:10:52
阅读次数:
353
Clairewd’s messageTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3433Accepted Submission(s): 1334...
分类:
其他好文 时间:
2014-08-24 10:16:32
阅读次数:
202
UVA 11557 - Code Theft
题目链接
题意:给定一些代码文本,然后在给定一个现有文本,找出这个现有文本和前面代码文本,重复连续行最多的这些文本
思路:把每一行hash成一个值,然后对于每一个文本计算最大匹配值,枚举后缀,然后利用KMP去找即可
代码:
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-08-23 22:59:31
阅读次数:
246
poj 2406: 这道题出的很好,让我明白了kmp循环节的性质。不过,不知是我太弱,还是网上大牛太多,大家都是直接找到最小的循环节之后就直接判断它是否整除n了。我想了好久,一直不明白一个问题。 假设最小循环节的长度为D。如果存在长度为d的循环节,它满足d>D且d不是D的倍数,这种情况是怎么判断.....
分类:
其他好文 时间:
2014-08-23 15:18:10
阅读次数:
180
UVA 1358 - Generator
题目链接
题意:有m种字符(从'A'开始往后数的大写字母),现在有一个字符串,长度不超过12,现在每次随机生成一个字母,要求能产生该字符串的期望长度
思路:dp[i]表示产生长度i的期望长度,那么每次产生一个字符,对应m种转移,每种转移的概率为1/m,转移后的长度可以利用KMP的next数组去快速获得,然后由于转移可能形成环的情况,所以无...
分类:
其他好文 时间:
2014-08-23 12:45:10
阅读次数:
276
AC自动模版题,中文题目就不叙述题意了啊。
AC自动主要是构造出字典树之后找到fail指针的跳转,类似于KMP里面的next数组的跳转啊,注意这里是多模式跳转。意思就是这个串跳到下一个串的什么位置啊。
先帖一下,做多了再一起总结吧。
病毒侵袭
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
分类:
其他好文 时间:
2014-08-22 22:36:57
阅读次数:
248
最近在研究一些字符串匹配算法,也是由于工作上的需要,强力推荐一本书《柔性字符串匹配》,一本很好的书。网上可以随时搜索到。还是说正题吧。BNDM算法的思想来源于BDM算法思想,类似于shitf-and和kmp之间的区别吧(也不知道是不是准确,有错望大家多指点)。前者都是用位运算模拟后者。好了,那就.....
分类:
其他好文 时间:
2014-08-22 22:26:09
阅读次数:
296
UVA 12012 - Detection of Extraterrestrial
题目链接
题意:给定一个字符串,求其所有子串中,对应1-n循环次数的最长串长度
思路:KMP,n才1000,可以接受O(n^2)的算法,对于每个后缀串,做一次KMP,然后在遍历一遍KMP数组,这样就可以得到每个子串的所有循环次数了,然后不断更新答案即可
代码:
#include
#i...
分类:
其他好文 时间:
2014-08-22 12:58:28
阅读次数:
213
题目:求一个串的最大的循环次数。
分析:dp,KMP,字符串。这里利用KMP算法。
KMP的next函数是跳跃到最近的串的递归结构位置(串元素取值0 ~ len-1);
由KMP过程可知:
如果存在循环节,则S[0 ~ next[len]-1] 与 S[len-next[len] ~ len-1]相匹配;
...
分类:
其他好文 时间:
2014-08-21 22:48:45
阅读次数:
343