Processing math: 100%

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

摘要://#include #include #include #include #include //#include //#include //#include #include #include using namespace std; int n,m,lq; #define maxn 200011 struct Edge{int to,next; char v;}edge[maxn ss[... 阅读全文
posted @ 2019-10-16 06:28 Blue233333 阅读(182) 评论(0) 推荐(0) 编辑
摘要:n30000的字符串,问其所有子串的所有AABB形式的拆分有多少种。t10组询问。 n3过80,n2过95,鬼去写正解。。 n2:先枚举一次算每个位置结尾的AA形式的子串,再枚举一次用类似的方法算答案。 正解:类似,记每个位置结尾的AA的子串和每个位 阅读全文
posted @ 2018-06-28 21:57 Blue233333 阅读(428) 评论(0) 推荐(0) 编辑
摘要:n100000的01串(其实啥串都行),给m100000个询问,每次问[L,R],回答:前缀L,L+1,...,R中,任意两个的最长公共后缀的长度。 这种前缀后缀的询问,无脑先建个后缀树先,反串的后缀树正串的sam哦。 然后现在问题就是:每次问一个区间的点集, 阅读全文
posted @ 2018-04-10 10:58 Blue233333 阅读(182) 评论(0) 推荐(0) 编辑
摘要:n<=300000的串,每一位有权<=1e9,对每个r=0~n-1问lcp长度为r的两个后缀有多少种,并在其中找出一个二元后缀使得他们开头的字符对应权值乘起来最大。 n*n*n:略 n*n*logn:哈希,略 lcp长度为指定长度我不会,但longes common suffix--最长公共后缀,这 阅读全文
posted @ 2017-12-11 19:41 Blue233333 阅读(189) 评论(0) 推荐(0) 编辑
摘要:n<=2000的两个串,求四个问: (1) A的一个最短的子串,它不是B的子串 (2) A的一个最短的子串,它不是B的子序列 (3) A的一个最短的子序列,它不是B的子串 (4) A的一个最短的子序列,它不是B的子序列 一开始??????嗯要识别子串和子序列需要俩东西:序列自动机和后缀自动机。 前两 阅读全文
posted @ 2017-12-09 07:27 Blue233333 阅读(394) 评论(0) 推荐(0) 编辑
摘要:求一个字符串的∑ ∑ len[i] + len[j] - 2 * lcp(i, j),其中i,j表示从i,j开始的后缀。 方法一:SA+单调栈,自行yy。 方法二:SAM构造出来,然后每个状态对答案的贡献就是:C(|right_s|,2)*(Max_s-Max_parent_s)。前面使用的变量名含 阅读全文
posted @ 2017-12-08 20:46 Blue233333 阅读(168) 评论(0) 推荐(0) 编辑
摘要:问两个串的最长公共子串,n<=100000。 SAM可以直接搞当然SA哈希都可以。。类似于KMP的做法,如果沿parent边走要顺势修改匹配位置。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<st 阅读全文
posted @ 2017-12-07 12:07 Blue233333 阅读(168) 评论(0) 推荐(0) 编辑
摘要:n<=100000个字符串,总长度<=100000,问每个字符串有多少子串至少出现在n个串中的m个。 方法一:(未写)串在一起,后缀数组搞出来,然后height数组--排名相邻两个后缀的lcp搞出来,然后可能产生贡献的就是一段连续的height。对这段连续的height,如果有区间[L,R],满足R 阅读全文
posted @ 2017-12-06 19:51 Blue233333 阅读(281) 评论(0) 推荐(0) 编辑
摘要:不要问我为什么,大家都啃CLJ论文过来的。 怎么会有这么强的人。。发明和引进这种算法的 诶谁看懂了CLJ的论文教我下QAQ我其实还不会的 Q:后缀树中所有节点深度和是多少? 阅读全文
posted @ 2017-12-04 22:12 Blue233333 阅读(174) 评论(0) 推荐(0) 编辑
摘要:给两个长度不超过50000的串,A串可每次截连续一段复制出来,求最少复制几次能得到B串。 方法一:SAM。不会。 嗯好会了。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<stdlib.h> 5 / 阅读全文
posted @ 2017-09-18 07:30 Blue233333 阅读(317) 评论(0) 推荐(0) 编辑

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