
后缀自动机
文章平均质量分 78
16bit戦争
这个作者很懒,什么都没留下…
展开
-
POJ 1509 Glass Beads 后缀自动机
题目大意:给出一个环形的字符串,问从哪里开始是的这个字符串的字典序最小。 思路:最小表示法和后缀自动机的裸题,不过我是为了学后缀自动机才写的这个题,就没有去学最小表示法。 做法很简单,先建立一个后缀自动机,然后从根开始沿tranc指针从a->z走len次到达的点就是字典序最小的字符串的结尾点,求起始点只要减一下长度再+1即可。 对于后缀自动机的理解:http://wyfcyx原创 2015-01-17 07:26:20 · 914 阅读 · 0 评论 -
BZOJ 3238 AHOI 2013 差异 后缀树
题目大意:求所有后缀长度减去LCP长度的二倍。 思路:之前用后缀数组写过,但是做法并不是很直观。现在学了后缀树再来写一次,这次思路就很清晰了。 首先我们把字符串按照倒序插入到后缀树中。形成的后缀树有一个很好的性质,连个后缀节点的LCA就是这两个后缀的LCP的位置,LCA的len值自然就是两个后缀的LCP。 建好树之后,进行一次树形DP,统计出来每两个后缀的LCP长度,计入总答案。原创 2015-01-17 16:31:36 · 1325 阅读 · 0 评论 -
BZOJ 2555 SubString 后缀自动机
题目大意:给出一个字符串,支持在线在字符串后面加一个字符串,查询一个字符串在串中出现过几次。 思路:如果不想写正解的话,这个题就是后缀自动机的简单应用。正解其实是LCT+SAM,但是时间比暴力慢一倍。。。 暴力就很简单了,正序建立后缀自动机,每次查询的时候找到位置直接输出size的值。注意两点,一个是分裂节点的时候,size也要复制过去。查询的时候发现找不到要return 0;原创 2015-01-19 18:45:02 · 944 阅读 · 0 评论 -
BZOJ 2780 SPOJ 8093 Sevenk Love Oimaster 后缀自动机+fenwick
题目大意:给出一些字符串,给出一些询问,每次问当前串在源串中的几个中出现过。 思路:将所有源串建立广义后缀自动机。每次新的一个串的时候,把last清成root,往里面加的时候,如果last指针往下走的时候已经有节点了,就需要拓展一个新的节点出来,否则就不满足广义后缀自动机的性质。此外,每一个节点代表的不一定是一个串,可能代表的是多个串的子串,所以要在每个点后面挂链,来表示这个节点是属于哪原创 2015-01-21 09:55:43 · 2099 阅读 · 1 评论