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

摘要:Luogu4218 [CTSC2010]珠宝商 \(SAM\)+点分治+根号分治 又被$SAM$神仙题教育了一顿。。。 字符串上树了,看起来很不可做的样子。由于本题需要维护的是所有链的信息,容易想到点分治。 既然要使用点分治,不可避免地要面临统计子树信息和两条链合并的难题。 比如当前连通块的重心为$ 阅读全文
posted @ 2021-02-05 08:02 GK0328 阅读(73) 评论(0) 推荐(0)
摘要:暂时不打算深入研究$SA$。 所以只能靠$SAM$了。 \(loj111 Code:\) #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define N 1000005 using namespa 阅读全文
posted @ 2020-12-20 19:51 GK0328 阅读(135) 评论(0) 推荐(0)
摘要:Luogu5115 Check,Check,Check one two! 重工业边分树不说了。 考虑对于一个$i,j$来说,$\operatorname(i,j),\operatorname(i,j)$有什么性质。 \[ S(i-\operatorname{lcp}(i,j)+1,i+\operat 阅读全文
posted @ 2020-12-14 16:53 GK0328 阅读(112) 评论(0) 推荐(0)
摘要:Luogu5284 [十二省联考2019]字符串问题 \(SAM\)+拓扑 回来赶一篇博客吧。 $SAM$简单题。 很容易发现,对于一个串$A_i$对应的$B$集合中每一个$B_j$,都能使得$A_i$转移到含有前缀$B_j$的串$A_k$,如果出现了正环,那么答案必然是无限的,同时我们建立的图中不 阅读全文
posted @ 2020-11-19 21:23 GK0328 阅读(108) 评论(0) 推荐(0)
摘要:Luogu4384 [八省联考2018]制胡窜 参考blog 这篇博客的分类讨论情况、式子和参考blog中是基本一致,因为蒟蒻切不了,只能够学习$shadowice1984$大佬,解析都是自己写的。 $SAM+$线段树合并+分类讨论 字符串太可怕了!!! 原问题即给定一个字符串$S$,每次询问的字符 阅读全文
posted @ 2020-11-19 21:10 GK0328 阅读(109) 评论(0) 推荐(0)
摘要:Luogu4770 [NOI2018]你的名字 \(SAM+LCT\) $update2020.11.16:\(更新了一只\)\log$解法。 好歹自己切了一道字符串黑题,这几天字符串没白颓。 观察原问题,如果模式串不是区间形式的话,很容易想到一个做法,就是对于输入串每一个$r$位置,除去$r$所在 阅读全文
posted @ 2020-11-14 12:58 GK0328 阅读(60) 评论(0) 推荐(0)
摘要:Luogu6292 区间本质不同子串个数 \(SAM+LCT+Segment\_Tree\) 如果把一个子串看成一个元素,我们首先需要完成的是如何快速判断一个区间内的元素个数。 如果元素是数字,那么我们可以离线操作,枚举右端点$r$,同时不断更新每个元素出现的位置,也就是每当一个元素出现,我们把它在 阅读全文
posted @ 2020-11-11 19:47 GK0328 阅读(337) 评论(2) 推荐(0)
摘要:CF666E Forensic Examination 广义$SAM$+线段树合并 这里利用到$SAM$中$endpos$集合的性质,我们可以注意到,在$SAM$的$parent$树上,祖先节点的$endpos$集合是包含子孙$endpos$集合的。 同时,所有子孙节点的$endpos$集合两两之间 阅读全文
posted @ 2020-11-10 16:04 GK0328 阅读(177) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P3346 广义后缀自动机 我们需要把所有两两叶子节点之间的路径丢进广义后缀自动机中,然后计算不同子串个数 观察数据,叶子节点数为$\le 20$,好像有点小 那么我们暴力枚举每个叶子节点为根的情况,然后处理根与其他叶子节点的路径 认 阅读全文
posted @ 2020-07-23 17:33 GK0328 阅读(102) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P4248 后缀自动机 观察原式,类似树上两点间距离 显然,这棵树是$Parent$树 那么,跑一遍$dfs$即可 对于边权,$lcp$是最长公共前缀,而$len$表示同一$endpos$集合中最长子串长度,因此能够表示$lcp$,同 阅读全文
posted @ 2020-07-23 15:49 GK0328 阅读(98) 评论(0) 推荐(0)
摘要:http://hihocoder.com/problemset/problem/1457 后缀自动机 在后缀自动机上拓扑,计算每个节点的答案即可 然而我凉了很久…… 原因:建图数组开小了! 注意:后缀自动机节点数开$2n$,边的条数开$3n$ C++ Code: #include<bits/stdc 阅读全文
posted @ 2020-07-20 17:26 GK0328 阅读(213) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P6139 广义后缀自动机(广义 SAM) 后缀自动机可以处理单串的问题,而多串问题则需要广义后缀自动机。 广义后缀自动机可以用离线处理,也可以在线处理 离线: 将所有字符串建成一颗$trie$树,进行$bfs$,依次将各节点丢进$S 阅读全文
posted @ 2020-07-20 17:24 GK0328 阅读(145) 评论(0) 推荐(0)
摘要:后缀自动机的结构 后缀自动机(及广义后缀自动机)衍生的题目有很多,要完成这些题目,必须了解后缀自动机的结构 下面简要列举几点: $1.$设放入后缀自动机的字符数为$n$,则后缀自动机节点数级别为$2n$,后缀自动机中边数的级别为$3n$ $2.$后缀自动机有一个源点,从源点可以到达后缀自动机的任何一 阅读全文
posted @ 2020-07-19 06:57 GK0328 阅读(87) 评论(0) 推荐(0)