Loading [MathJax]/jax/output/HTML-CSS/jax.js

随笔分类 -  字符串-后缀自动机

摘要:题意给定两个字符串 A 和 B,求下面四个问题的答案:1.在 A 的子串中,不是 B 的子串的字符串的数量。2.在 A 的子串中,不是 B 的子序列的字符串的数量。3.在 A 的子序列中,不是 B 的子串的字符串的数量。4.在 A 的子序列中,不是 B 的子序列的字符串的数量。其中子串是指本质不同... 阅读全文
posted @ 2015-11-22 18:42 iwtwiioi 阅读(318) 评论(0) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2946题意:给n个串,求最大公共子串。(1using namespace std;const int N=2005<<1;struct sam { int cnt, root, last, l[N], ... 阅读全文
posted @ 2015-01-12 20:32 iwtwiioi 阅读(326) 评论(0) 推荐(0) 编辑
摘要:http://www.spoj.com/problems/SUBLEX/后缀自动机系列完成QAQ。。。撒花。。明天or今晚写个小结?首先得知道:后缀自动机中,root出发到任意一个状态的路径对应一个子串,而且不重复。(原因似乎是逆序后缀树?所以我们在自动机上预处理每一个状态的子串数目,然后从小到大枚... 阅读全文
posted @ 2014-12-05 13:20 iwtwiioi 阅读(445) 评论(0) 推荐(0) 编辑
摘要:http://www.spoj.com/problems/LCS2/发现了我原来对sam的理解的一个坑233本题容易看出就是将所有匹配长度记录在状态上然后取min后再对所有状态取max。但是不要忘记了一点:更新parent树的祖先。为什么呢?首先如果子树被匹配过了,那么长度一定大于任意祖先匹配的长度... 阅读全文
posted @ 2014-12-05 06:48 iwtwiioi 阅读(998) 评论(0) 推荐(2) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2555 学到了如何快速维护right值orz (不过这仍然是暴力维护,可以卡到O(n) 首先我们在加一个新节点的时候直接遍历它的parent树就行啦啦!!!!这样直接就暴力维护了。。。我竟然没想到。。 阅读全文
posted @ 2014-12-04 17:21 iwtwiioi 阅读(1001) 评论(3) 推荐(0) 编辑
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3172随便搞个sam就行了。(其实一开始看到数据n#include #include #include #include #include #include #include #include usin... 阅读全文
posted @ 2014-12-04 13:50 iwtwiioi 阅读(733) 评论(0) 推荐(1) 编辑
摘要:http://www.spoj.com/problems/NSUBSTR/题意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。求F(1)..F(Length(S))这题做法:首先建立字符串的后缀自动机。所以对于一个节点s,长度范围为[Min(s),Max(s)]... 阅读全文
posted @ 2014-12-04 06:57 iwtwiioi 阅读(352) 评论(0) 推荐(0) 编辑
摘要:http://codevs.cn/problem/3160/sam的裸题。。。(之前写了spoj上另一题sam的题目,但是spoj被卡评测现在还没评测完QAQ打算写那题题解时再来详细介绍sam的。。。。那就再等等吧。求两个串的lcs话,就是先建立a串的sam,然后用b的字串去匹配a中。因为sam中的... 阅读全文
posted @ 2014-12-03 22:03 iwtwiioi 阅读(1190) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示