
后缀数组/后缀自动机
文章平均质量分 66
简称SA/SAM
小衣同学
No Saturday , no Sunday , no holiday .
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #846 (Div. 2) G. Delicious Dessert(后缀自动机sam/后缀数组sa)
Codeforces Round #846 (Div. 2) G. Delicious Dessert(后缀自动机/后缀数组)原创 2023-01-27 13:33:13 · 767 阅读 · 0 评论 -
leetcode 5803. 最长公共子路径(k-最长公共子串问题)
题意题目即求k(k<=1e5)个串的最长公共子串的长度,字符集大小1e5,k个串的总长度不超过1e5思路来源乱搞AC题解大概是一个poj3294的后缀数组原题,首先将k个串用k-1个特殊字符(这里用1e5+1)连接到一起,注意不能用k个,不然会导致二分的答案长度+1,这样构造的新串长度2e5考虑二分答案长度x,忽略height<x的,将height>=x的尺取,然后,判断尺取的每一段,起始下标的并是否为k对于每个字符,bel[i]记录第i个字原创 2021-07-04 12:41:31 · 303 阅读 · 0 评论 -
poj3693 Maximum repetition substring (后缀数组 字典序最小的 重复次数最多的子串)
题目重复次数R定义为一个串中重复的最大次数,例如,abababab可以看做是R=4的ab的重复,此时输出abababab而abcdabcd可以看成是R=2的abcd的重复,给定一个长为n(n<=1e5)的小写字母串,输出其子串中满足R是最大的,且该子串是所有R最大的串中字典序最小的这个子串思路来源罗穗骞《后缀数组——处理字符串的有力工具》https://blog.youkuaiyun.com/libin56842/article/details/46317153题解原创 2020-09-29 00:41:33 · 377 阅读 · 0 评论 -
洛谷P2408 不同子串个数(后缀自动机)
题目长为n(n<=1e5)的字符串,求其本质不同的子串的个数思路来源https://www.luogu.com.cn/blog/user7035/solution-p2408逆拓扑序https://www.luogu.com.cn/blog/tanrui-2960967961/solution-p2408动态维护https://blog.youkuaiyun.com/Code92007/article/details/82820460后缀数组题解之前学SA的时候,做过这么个题,补...原创 2020-06-29 11:51:27 · 736 阅读 · 0 评论 -
洛谷P3804 【模板】后缀自动机 (SAM) (后缀自动机)
题目给定一个只包含小写字母的字符串S(|S|<=1e6),请你求出S的所有出现次数不为1的子串的出现次数乘上该子串长度的最大值。思路来源https://www.cnblogs.com/cjyyb/p/8446349.html题解一个串的出现次数等于endpos集合的大小,叶子结点的出现次数显然为1,因为在树上不可再分而一个节点endpos的大小等于所有parent树上儿子的大小考虑到,父亲的串一定比儿子的串短,所以对长度基数排拓扑序,短的排在前面,长的在...原创 2020-06-29 11:27:28 · 346 阅读 · 0 评论 -
Comet OJ - 2019国庆欢乐赛 G-字符串(后缀数组)
题目思路来源官方题解题解用大于z的字母将串分隔,值得一提,'z'+1=='{'将询问串t1{t2{t3{tq{s接在一起注意到最小k,即为s串内最前位置k倒序遍历sa[]数组,更新在原串s中的最小位置pos,遇到询问时,用sa[pos]子串回答,特判长度越界则答案为-1,否则为当前pos子串对应的k指针板子常数大的一批,和别的SA板子比起来简直……代...原创 2019-10-08 18:25:21 · 257 阅读 · 0 评论 -
hdu6194 string string string(后缀数组+RMQ)
题目给你一个串(串长<=1e5),一个k(k>=1)问串中恰好出现k次的子串有多少个思路来源https://www.cnblogs.com/weeping/p/7503972.html题解先建后缀数组和high数组,high[i]代表排名为i和排名为i-1的最长公共前缀注意到出现k次的子串长度的上界为长度为k-1的区间的最小值而出现k+1次的子...原创 2019-03-01 16:09:47 · 265 阅读 · 0 评论 -
spoj705 D - New Distinct Substrings(后缀数组)
题意给定一个串,求其不同子串的个数。题解又见后缀数组鬼题,数据范围1e3的代码跑到5e4的就过不了了,gg。题解详见罗穗骞奆神的论文《后缀数组——处理字符串的有力工具》,“每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), …… ,su...转载 2018-09-23 10:40:01 · 318 阅读 · 0 评论 -
poj1743 Musical Theme(后缀数组)
题意:给你N个数,他们之间的升降调可以定义为相邻两数之差,但旋律可以整体升阶或降阶,问最少五个数长的相同旋律。 心得:这题可以说是很毒瘤了,WA了若干发终于A了,期间竟然还有RE。先作差分数组,可以看出长度小于10的显然不够分剪枝减掉。然后,二分枚举答案,L为0,R为N/2。这题即求 不重复的最长公共子串,考虑到2 4 6 8 10作出差分数组为4个2,即最终答案大...转载 2018-09-22 21:31:35 · 213 阅读 · 0 评论 -
poj2406 Power String(后缀数组DC3/kmp)
题意问该串是最短循环节重复了几次而形成的串,输出这个次数。题解①kmp显然可做,求len-next[len]即循环节的长度,然后判断是否能被len整除即可。②后缀数组:枚举循环节长度i,i从1到len/2,如果长度为i,则循环节显然为0-(i-1)的子串先判断i是否能被len整除,再看suffix(0)与suffix(i)的最长公共前缀是否为len-i,其与next[len...原创 2018-09-23 14:00:16 · 389 阅读 · 0 评论