随笔分类 -  ----后缀自动机

摘要:终于又遇到SAM的题了好好玩,而且就这道题让我弄清楚了广义SAM和Trie上SAM的区别其实两者是没有多少区别的,不过Trie上SAM可以更快关于Trie上SAM,是用bfs的方法来构建的,相比起广义SAM用dfs建少了一个深度之和的部分但是如果原题给的就是Trie那... 阅读全文
posted @ 2018-04-20 21:18 扩展的灰(Extended_Ash) 阅读(174) 评论(0) 推荐(0)
摘要:首先,我们来定义一下淋漓尽致子串。1.令原串为S。2.设子串的长度为len,在原串S中出现的次数为k,令其出现的位置为p1, p2, ....pk(即这个子串在原串中[pi,pi + len - 1]中出现)。3.若k=1,则该子串不是淋漓尽致子串。4.若存在pi,p... 阅读全文
posted @ 2018-02-07 09:27 扩展的灰(Extended_Ash) 阅读(168) 评论(0) 推荐(0)
摘要:终于找到教程了,现在来写一发题目:Jzoj4072(bzoj3998)弦论 第一问其实非常好写,连空间都不需要多开一倍,只需要sa数组rank数组和height数组就好了,dfs一次可以求出#include#include#include#include#define... 阅读全文
posted @ 2018-01-12 19:38 扩展的灰(Extended_Ash) 阅读(213) 评论(0) 推荐(0)
摘要:你有一个字符串S,最开始为空,要求支持两种操作在S后面加入字符c删除S最后一个字符每次操作询问S有多少个两两不同子串应该本来应该用SAM+Trie离线做的,然而为了练一下后缀平衡树就写了其实也很好写,用哈希比较一下就好了,可以用set实现,开一个数组存每个后缀对应的节... 阅读全文
posted @ 2017-12-10 13:16 扩展的灰(Extended_Ash) 阅读(203) 评论(0) 推荐(0)
摘要:下课前,园长提出了一个问题:“KMP 算法只能求出 next 数组。我现在希望求出一个更强大 num 数组——对于字符串 S 的前 i 个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。例如 S 为 aaaa... 阅读全文
posted @ 2017-12-04 20:35 扩展的灰(Extended_Ash) 阅读(116) 评论(0) 推荐(0)
摘要:物理题目传送门求第k大的子串?SAM模板题啊CLJ的论文都讲了怎么做啊,把自动机看成一个后缀Trie求出size让后像多叉平衡树那样乱搞就好了~比前两个哈希的题好多了~ (顺便,hdu高亮好好看啊)#pragma GCC opitmize("O3")#pragma G... 阅读全文
posted @ 2017-12-01 20:48 扩展的灰(Extended_Ash) 阅读(133) 评论(0) 推荐(0)
摘要:题目传送门哈哈哈广义SAM真的好简(du)单(liu)啊到时候讲课可以拿来祸害众生,Yeah!好了开始讲题解,我们将所有字符串加入广义SAM里面对每一个节点维护一个bitset表示它在哪些主串中出现过,让后标记上传就用或运算就好了因为题目要求输出方案,加上一个dfs就... 阅读全文
posted @ 2017-11-30 17:35 扩展的灰(Extended_Ash) 阅读(158) 评论(0) 推荐(0)
摘要:题目传送门题意:对一个字符串求一个最长的子串使得它至少出现k次额,因为这个题目呢,他的字符集非常大(100W)所以直接用SAM是不行了,我们考虑用离散化+SA,让后就可以分块rmq了当然这样很麻烦,我们还是用SAM,但是儿子集合用map来存,这样空间就是O(n)的,时... 阅读全文
posted @ 2017-11-27 21:07 扩展的灰(Extended_Ash) 阅读(132) 评论(0) 推荐(0)
摘要:题目传送门题意:对一个序列的差分求出现至少两次且两次不相交的最长子串也是SA和SAM都可以做,SA稍微麻烦SA做法:二分+height分段rmqSAM做法(太神了):对于每个节点的right集合,求出其中的最大值和最小值那么合法的长度一定为min(mx[x],r[x]... 阅读全文
posted @ 2017-11-27 20:41 扩展的灰(Extended_Ash) 阅读(116) 评论(0) 推荐(0)
摘要:题目传送门题意:求两个字符串的LCS这个题是SA的经典题,也是SAM的经典题SA做法:连接两个字符串(中间加个#)让后求height,Answer=Max{height[i]}SAM做法:从开头匹配字符串,如果当前节点x能继续匹配就继续如果不能匹配,就令x=f[x]直... 阅读全文
posted @ 2017-11-27 20:07 扩展的灰(Extended_Ash) 阅读(107) 评论(0) 推荐(0)
摘要:最近教练叫我去讲字符串专题,于是来写一写这方面的内容主要就讲以下几个吧:1.Kmp 2.Extended Kmp3.Trie4*.AC Automation (Trie Graph)5*.String Hash6.Suffix Array7*.Suffix Autom... 阅读全文
posted @ 2017-11-26 16:04 扩展的灰(Extended_Ash) 阅读(271) 评论(0) 推荐(0)
摘要:nodgd写了一篇文章,自认为这是一篇好文章。nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家证明这是一篇好文章,nodgd决定给自... 阅读全文
posted @ 2017-11-16 19:32 扩展的灰(Extended_Ash) 阅读(180) 评论(0) 推荐(0)
摘要:nodgd写了一篇文章,自认为这是一篇好文章。nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家证明这... 阅读全文
posted @ 2017-11-08 15:40 扩展的灰(Extended_Ash) 阅读(127) 评论(0) 推荐(0)
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试... 阅读全文
posted @ 2017-10-31 08:10 扩展的灰(Extended_Ash) 阅读(378) 评论(0) 推荐(0)
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试... 阅读全文
posted @ 2017-10-31 08:10 扩展的灰(Extended_Ash) 阅读(203) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(149) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(211) 评论(0) 推荐(0)
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int... 阅读全文
posted @ 2017-10-21 22:00 扩展的灰(Extended_Ash) 阅读(90) 评论(0) 推荐(0)
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int... 阅读全文
posted @ 2017-10-21 22:00 扩展的灰(Extended_Ash) 阅读(109) 评论(0) 推荐(0)
摘要:题意:求出现次数*长度最大的回文串很水的一道题直接用回文树可以切了太菜并不会回文树,用了极慢的sam+manachermanacher求出所有回文子串用sam在parent树上面倍增就可以求出一个串的出现次数,manacher是O(n)的,倍增lgn,整体复杂度nlg... 阅读全文
posted @ 2017-10-21 20:25 扩展的灰(Extended_Ash) 阅读(206) 评论(0) 推荐(0)