字符串
humeay
这个作者很懒,什么都没留下…
展开
-
后缀自动机1003 HDU 4416
题意: 给一个模式串,然后给n个匹配串,问模式串里有多少个子串是n个匹配串里都不存在的 思路: 就是注意一个性质就行了 假设当前节点的len==6,当前节点的pre节点len==2 这个节点接收的状态就是以当前节点为最后一个字符的后缀的长度是3~6里 比如当前节点的最长后缀是abcabb(sam.len==6),pre节点是b(sam.len==2) 那么当前节点的接收子串是a原创 2016-08-08 09:55:55 · 329 阅读 · 0 评论 -
后缀自动机1002 SPOJ NSUBSTR
题意: 求长度为i的最多的出现次数 思路: 对于Sam上的每个节点保存匹配串的最长匹配长度 然后再传给父亲节点就行了 #include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<math.h>#include<queue>#include<stack>#include<stri原创 2016-08-08 09:55:00 · 366 阅读 · 0 评论 -
SPOJ LCS2 后缀自动机
题意: 求多个串的LCS 思路: 跟上题一样的东西…. 只不过多加一个临时的dp数组来保存所有的状态的最小值 然后求所有子串的最大值就好了#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<math.h>#include<queue>#include<stack>#i原创 2016-08-08 09:54:16 · 249 阅读 · 0 评论 -
后缀自动机1001 SPOJ LCS
题意: 就是求LCS 思路: topsort后 每个父亲节点加上子节点的状态就行了吧 至于为什么传给父亲节点 这里Sam里的每个节点有个性质 假设当前节点的len==6,当前节点的pre节点len==2 这个节点接收的状态就是以当前节点为最后一个字符的后缀的长度是3~6里 比如当前节点的最长后缀是abcabb(sam.len==6),pre节点是b(sam.len==2) 那么原创 2016-08-08 09:53:28 · 291 阅读 · 0 评论 -
后缀自动机SAM
做了一些关于后缀自动机的题,写一下自己的一点理解吧 在开始看后缀自动机之前建议看一下后缀树,这样在做题的时候比较好想一点,感觉后缀树比自动机直观一点 后缀树的链接http://blog.163.com/ps_lm/blog/static/20790406120125883433110/ 后缀自动机http://fanhq666.blog.163.com/blog/static/81943426原创 2016-05-08 19:03:16 · 1314 阅读 · 0 评论 -
HDU 3068 manacher算法(O(n)的最长回文串算法)
宿舍的交换机坏了,因为之前还没开学,所以就没人修,然后就拖到现在寝室才有网。然后这几天因为省赛选拔赛所以心好累 /**************************************************************manacher是很久之前就听说的想学的,今天晚上因为选拔完了就闲了看的数组: s 字符原串 str 通过在每两个数组元素之间添加’#’形成的新串 p[i原创 2015-08-26 00:43:11 · 448 阅读 · 0 评论