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

摘要:http://codeforces.com/problemset/problem/666/E (题目链接) 题意 给出一个主串$S$,$n$个匹配串编号从$1$到$n$。$m$组询问,每次询问主串的一个子串$S[p_l,p_r]$在编号为$[l,r]$的匹配串的哪一个中出现次数最多。 Solutio 阅读全文
posted @ 2017-03-06 09:49 MashiroSky 阅读(537) 评论(1) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2780 (题目链接) 题意 给出很多主串和很多询问串,求一个询问串在多少主串中出现过 Solution 我们先构造出后缀自动机,然后把主串在后缀自动机上匹配,能够到达哪个状态就把那个状态的计数器${cn 阅读全文
posted @ 2017-02-12 14:27 MashiroSky 阅读(241) 评论(0) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3926 (题目链接) 题意 给出一棵树,每个节点有一个编号,范围在${[0,9]}$。一个序列是指树上某条路径上的点的编号按顺序依次相接连成的字符串。问有多少个不同的序列。 Solution 广义后缀自 阅读全文
posted @ 2017-02-11 22:33 MashiroSky 阅读(204) 评论(1) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2555 (题目链接) 题意 给出一个初始串,维护两个操作。在原串后面加入一个字符串;询问某个字符串在原串中出现的次数。强制在线。 Solution 对于加入操作,我们动态构造后缀自动机,每次就将添加的节 阅读全文
posted @ 2017-02-11 20:30 MashiroSky 阅读(197) 评论(0) 推荐(0)
摘要:http://uoj.ac/problem/131 (题目链接) 题意 给出一个字符串,每个后缀有一个权值${a_i}$,这些后缀两两之间存在公共前缀。问能够组成长度从0~n-1的公共前缀的后缀的方案数以及他们权值的最大乘积。 Solution 听LCF说这是水题,就来做了。。 lyp学长说SAM构 阅读全文
posted @ 2017-01-22 02:18 MashiroSky 阅读(296) 评论(1) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4516 (题目链接) 题意 依次向字符串末尾加上一个字符,每次求不同子串个数。 Solution 如果不是字符的范围太大,这道题就是个板子题。。所以我们把后缀自动机上的边用map存下就好了。 伦说has 阅读全文
posted @ 2017-01-20 15:45 MashiroSky 阅读(293) 评论(1) 推荐(0)
摘要:http://uoj.ac/problem/35 (题目链接) 题意 如题,并且求height数组。 Solution 挂一发后缀自动机构后缀数组及height数组 细节 注意基数排序和连边的时候不要把根节点也算进去 代码 阅读全文
posted @ 2017-01-19 16:43 MashiroSky 阅读(232) 评论(0) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2806 (题目链接) 题意 给出M个字符串组成“标准库”。定义L表示将一个字符串分成若干段,每一段的长度不小于L,其中是在标准库中任一字符串的子串的字符“段”的长度之和不小于原字符串长度之和的90%。N 阅读全文
posted @ 2017-01-17 22:04 MashiroSky 阅读(251) 评论(0) 推荐(0)
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3998 (题目链接) 题意 给出一个字符串,求它的字典序第K小的子串是什么,分情况讨论不在同一位置的相同子串需不需要重复考虑。 Solution 对于不需要重复考虑的情况,直接就是spoj上的那道例题, 阅读全文
posted @ 2017-01-16 10:41 MashiroSky 阅读(207) 评论(0) 推荐(0)
摘要:http://www.spoj.com/problems/LCS2/ (题目链接) 题意 求多个串的最长公共子串 Solution 对其中一个串构造后缀自动机,然后其它串在上面跑匹配。对于每个串都可以跑出在SAM上的每一个节点的最长公共子串的长度,当然,有些节点虽然匹配时可能没有经过,但是在pare 阅读全文
posted @ 2017-01-16 09:42 MashiroSky 阅读(226) 评论(0) 推荐(0)
摘要:http://www.spoj.com/problems/SUBLEX/ (题目链接) 题意 给出一个字符串,询问其中字典序第K小的子串。 Solution 后缀自动机例题。 构出后缀自动机以后,对每个节点预处理出从这个节点可以到达多少个不同的子串。然后就是类似于在平衡树上查找一样沿着SAM一路查找 阅读全文
posted @ 2017-01-15 19:46 MashiroSky 阅读(394) 评论(0) 推荐(0)
摘要:http://www.spoj.com/problems/NSUBSTR/ (题目链接) 题意 给出一个字符串S,令${F(x)}$表示S的所有长度为x的子串出现次数的最大值。求${F(1)......F(length(S))}$ Solution 后缀自动机例题,下面写几点自己认为理解后缀自动机的 阅读全文
posted @ 2017-01-15 17:15 MashiroSky 阅读(534) 评论(0) 推荐(2)
摘要:http://poj.org/problem?id=2774 (题目链接) 题意 给出两个只包含小写字母的字符串,求出最长连续公共子串。 solution 第一次用后缀数组,感觉有点神。。。才发现原来sa[0]是没用的。。 将两个字符串合并为一个,并用分隔符隔开。之后跑后缀数组,求出height[] 阅读全文
posted @ 2016-09-28 14:41 MashiroSky 阅读(269) 评论(0) 推荐(1)