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

2019.7.4 模拟赛——[ 后缀相关思路+规律好题 ][ 交互题思路 ][ LCT上“二分”查找 ]
该文被密码保护。

posted @ 2019-07-04 15:57 Narh 阅读(2) 评论(0) 推荐(0)

LOJ 2720 「NOI2018」你的名字——后缀自动机
摘要:题目:https://loj.ac/problem/2720 自己总是分不清 “SAM上一个点的 len[ ] ” 和 “一个串的前缀在 SAM 上匹配的 len ”。 于是原本想的 68 分做法是,求出 T 的本质不同子串个数,减去 T 在 S 的 SAM 上走的 fail 树的链并权值。SAM 阅读全文

posted @ 2019-05-04 20:00 Narh 阅读(233) 评论(0) 推荐(0)

bzoj 3881 [Coci2015]Divljak——LCT维护parent树链并
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3881 对 S 建 SAM ,每个 T 会让 S 的 parent 树的链并答案+1;在 T 走每一步的时候,走到的节点用 LCT access 一下,就能找到该点到 parent 根的链。 给 阅读全文

posted @ 2019-05-03 10:44 Narh 阅读(218) 评论(0) 推荐(0)

2019.4.11 一题 XSY 1551 ——广义后缀数组(trie上后缀数组)
摘要:参考:http://www.mamicode.com/info-detail-1949898.html (log2) https://blog.csdn.net/geotcbrl/article/details/50907662 https://blog.csdn.net/cdsszjj/artic 阅读全文

posted @ 2019-04-11 17:48 Narh 阅读(306) 评论(0) 推荐(0)

洛谷 5284 [十二省联考2019]字符串问题——后缀数组+线段树优化连边+真实字典序排序思路
摘要:题目:https://www.luogu.org/problemnew/show/P5284 每个 b 找出它是哪些 a 的前缀,然后就可以让一些 a 向另一些 a 连边,这个图找最长路即可。 b 找它是哪些 a 的前缀的时候,可以做出后缀数组,然后二分一下 LCP >= lenb 的范围,范围内的 阅读全文

posted @ 2019-04-08 17:27 Narh 阅读(279) 评论(0) 推荐(0)

洛谷 4384 [八省联考2018]制胡窜——后缀自动机+线段树合并
摘要:题目:https://www.luogu.org/problemnew/show/P4384 这个题解说得很好:https://blog.csdn.net/qq_39972971/article/details/79882067 用线段树维护 right 集合出现位置,以及区间的 \( \sum(r 阅读全文

posted @ 2019-03-29 21:02 Narh 阅读(327) 评论(0) 推荐(0)

CF 666E Forensic Examination——广义后缀自动机+线段树合并
摘要:题目:http://codeforces.com/contest/666/problem/E 对模式串建广义后缀自动机,询问的时候把询问子串对应到广义后缀自动机的节点上,就处理了“区间”询问。 还要处理模式串的区间,可以用线段树。给广义自动机的每个节点开一棵线段树存该节点代表的串在各模式串中的出现情 阅读全文

posted @ 2019-03-29 08:50 Narh 阅读(311) 评论(0) 推荐(0)

CF 316G3 Good Substrings——广义后缀自动机
摘要:题目:http://codeforces.com/contest/316/problem/G3 对询问串和模式串一起建一个后缀自动机,做出在每个串上的 right 集合大小之后枚举自动机上的每个点看看是否合法即可(合法的话,贡献是 len[ cr ] - len[ fa ])。 注意做出拓扑序后用的 阅读全文

posted @ 2019-03-27 20:45 Narh 阅读(266) 评论(0) 推荐(0)

bzoj 2806 [Ctsc2012]Cheat——广义后缀自动机+单调队列优化DP
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2806 只想着怎么用后缀数据结构做,其实应该考虑结合其他算法。 可以二分那个长度 L 。设当前二分为 mid ;令 dp[ i ] 表示到 i 位置“熟悉”的最大长度。那么 \( dp[i]=\ 阅读全文

posted @ 2019-03-27 17:49 Narh 阅读(220) 评论(0) 推荐(0)

bzoj 4650(洛谷 1117) [Noi2016]优秀的拆分——枚举长度的关键点+后缀数组
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4650 https://www.luogu.org/problemnew/show/P1117 和 bzoj2119 股市的预测 一样。 考虑算出每个点往前的 AA 的个数和往后的 BB 的个数 阅读全文

posted @ 2019-01-28 19:58 Narh 阅读(182) 评论(0) 推荐(0)

bzoj 2119 股市的预测——枚举长度的关键点+后缀数组
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2119 就是找差分序列上中间差 m 的相等的两段。 考虑枚举这样一段的长度 L 。可以把序列分成 \( \frac{n}{L} \) 段;令 L , 2L , ... 这样的位置为关键点,那么每 阅读全文

posted @ 2019-01-28 11:11 Narh 阅读(193) 评论(0) 推荐(0)

bzoj 4556 [Tjoi2016&Heoi2016]字符串——后缀数组+主席树
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4556 本来只要查 ht[ ] 数组上的前驱和后继就行,但有长度的限制。可以二分答案解决!然后用主席树查区间内的 ht[ ] 的前驱和后继即可。(主席树弄对 rk 的权值线段树) 在主席树上走的 阅读全文

posted @ 2019-01-25 15:49 Narh 阅读(332) 评论(0) 推荐(0)

bzoj 4566 [Haoi2016]找相同字符——广义后缀自动机
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4566 每个后缀结尾处 ct[ ] = 1 ,按拓扑序 dp 一下就能求出 right 集合的大小。自动机上每个点的贡献就是 ( l [cr]-l [fa] ) * ct[0][cr] * ct 阅读全文

posted @ 2019-01-19 11:27 Narh 阅读(264) 评论(0) 推荐(0)

bzoj 3277 串 && bzoj 3473 字符串 && bzoj 2780 [Spoj]8093 Sevenk Love Oimaster——广义后缀自动机
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3277 https://www.lydsy.com/JudgeOnline/problem.php?id=3473 学习的博客:https://www.cnblogs.com/HocRiser/ 阅读全文

posted @ 2019-01-19 10:01 Narh 阅读(224) 评论(0) 推荐(0)

bzoj 3998 [TJOI2015]弦论——后缀自动机
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3998 相同子串算多个的话,先求好 right ,然后求一个 sm 表示走到这个点之后有几种走法,即把 DAG 上自己能走到的点的 right 都收集起来,可用拓扑序解决。 相同子串算一个的话, 阅读全文

posted @ 2018-12-13 08:20 Narh 阅读(159) 评论(0) 推荐(0)

bzoj 2946 [Poi2000]公共串——后缀自动机
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2946 对每个串都建一个后缀自动机,然后 dfs 其中一个自动机,记录同步的话在别的自动机上走到哪些点了;只要有一个自动机上走不下去了,就都走不下去了。每走到一个新地方就更新一下 ans 。 或 阅读全文

posted @ 2018-12-12 15:13 Narh 阅读(159) 评论(0) 推荐(0)

bzoj 4032 [HEOI2015]最短不公共子串——后缀自动机
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4032 不是 b 的子串的话就对 b 建后缀自动机,在 a 上枚举从每个位置开始的子串或者找子序列(子序列就是记录 a 的前 i 个,走到 b 的 j 状态用的最短长度),对应到自动机上看看能不 阅读全文

posted @ 2018-12-12 14:30 Narh 阅读(178) 评论(0) 推荐(0)

bzoj 2555 SubString——后缀自动机+LCT
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2555 要维护 right 集合的大小。因为 fa 会变,且 fa 构成一棵树,所以考虑用 LCT 来维护…… 和平常写的 LCT 不太一样。因为要的值是原树上子树里的值,所以没有 makero 阅读全文

posted @ 2018-12-12 11:54 Narh 阅读(191) 评论(0) 推荐(0)

洛谷 3804 【模板】后缀自动机
摘要:题目:https://www.luogu.org/problemnew/show/P3804 学习材料:https://blog.csdn.net/qq_35649707/article/details/66473069 https://wenku.baidu.com/view/90f22eec55 阅读全文

posted @ 2018-12-12 09:00 Narh 阅读(231) 评论(0) 推荐(0)

bzoj 2865 字符串识别——后缀数组
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 做出 ht[ ] 之后,sa[ ] 上每个位置和它前面与后面取 LCP ,其中较大的长度设为 d ,表示从 sa[ i ] 位置开始的子串的右端点要在 sa[ i ]+d-1 位置之后才 阅读全文

posted @ 2018-12-08 16:20 Narh 阅读(267) 评论(0) 推荐(0)

导航