在北京待了一周多,还是写点记录吧。人民大学校园还是挺不错的,不过伙食差评。CTSC的题目太神,根本不会搞,一试20二试10分。。本来都寄希望于提交答案题的..结果就悲剧了。然后是听大爷们的论文答辩,竟然3位讲后缀自动机,自从省选一试第三题考了之后感觉突然流行起来了。反正我是不会。比较有意思的还是听前...
鉴于SAM要简洁一些...于是又写了一遍这题... 不过很好呢又学到了一些新的东西... 这里是用SA做这道题的方法 首先还是和两个字符串的一样,为第一个字符串建SAM 然后每一个字符串再在这个SAM上跑匹配 然而我们最后要的答案是什么呢? 是某个在所有字符串中匹配长度最小值最大的状...
分类:
其他好文 时间:
2015-05-05 12:30:59
阅读次数:
160
唔..过去了一个多月才敢动一下一试的题呢..毕竟好神啊好神啊 看右边→就写着Orz yu990601 那不如就从他A掉的T3开始吧... 昨天晚上看了一下SAM..大概还是比较亲切的吧 毕竟去年暑假还是听过的...虽然并没有听懂 但是很开心的是现在再看CLJ的讲稿的时候大部分都能看懂了...
分类:
其他好文 时间:
2015-05-05 08:50:29
阅读次数:
193
给出两个由小写字母组成的字符串,求它们的最长公共子串的长度。 样例就觉得不能更眼熟啊...好像之前用后缀数组做过一次 然后发现后缀自动机真的好好写啊...(当然当时学后缀数组的时候也这么认为... 这道题直接把第一个串放到后缀自动机里 第二个串在上面做匹配,但是要注意匹配的时候不能乱搞...
分类:
其他好文 时间:
2015-05-05 08:46:37
阅读次数:
198
广义后缀自动机:
传统后缀自动机是解决单个主串的匹配问题,广义后缀自动机可以用来解决多个主串的匹配问题。...
分类:
其他好文 时间:
2015-05-04 18:20:02
阅读次数:
628
题解:
首先我们可以建一个后缀自动机。
然后每条路径走到每个点都是一个串,它们是有字典序的。
我们只需要统计出往每个点走之后都有多少串就好了。
fi=(∑fson)+numif_i = (\sum {f_{son}})+num_i
对于不计重复的情况下,numi=1num_i=1
对于计算重复的情况下,每个节点都有多种走到最后的方式,numinum_i 就是看有这个种数。
比如 ab...
分类:
其他好文 时间:
2015-04-29 19:51:24
阅读次数:
118
题目大意:给定字符串A和B,求A最短的子串/子序列S满足S不是B的子串/子序列
这题真TM有毒*2
搞法类似这道题
然后子串是后缀自动机 子序列自然就是序列自动机了= =
每更新一个x节点时所有没有x的后继的节点都连向这个节点
每个节点的parent是这个字母上一次出现的位置
每个字母记录最后一次出现的位置 更新指针时沿着parent指针撸一遍就行了#include
#...
分类:
其他好文 时间:
2015-04-27 21:47:52
阅读次数:
172
题解:
T1:
我们按长度bfs所有的串,对于每个串记录A串中终点位置、B串中终点位置(B串中位置由B的后缀自动机中节点标号表示)、长度——(x,y,l)(x,y,l)。
然后 (x,y,l)(x,y,l) 可以 O(1)O(1) 转移到 (x+1,son[y,stringax+1?′a′],l+1)(x+1,son[y,stringa_{x+1}-'a'],l+1)
时间复杂度 O(...
分类:
其他好文 时间:
2015-04-27 18:27:23
阅读次数:
134
后缀自动机----fanhq666的后缀自动机----
分类:
其他好文 时间:
2015-04-25 19:38:47
阅读次数:
117
题目大意:求严格/非严格K小子串
首先建立Sam
然后BFS一遍求出每个点代表状态的出现次数
此时如果是严格的那么每个点代表状态的出现次数都应该是1
然后DFS一遍求出每个节点的后继状态个数
然后就随便搞了啊= =
妈了个鸡卡常数。。。#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-04-21 20:51:35
阅读次数:
149