"bzoj" "Luogu" 题解时间 给你个无根trie树(你管这叫trie树?),问你选取一条有向路径能形成多少种不同字符串。 __太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过20个。 只有不超过20个叶子。__ 纯粹看你读题的,你要是读错了这句话的含义你就白给。 如何保证完整枚举这 ...
分类:
其他好文 时间:
2019-12-22 10:47:38
阅读次数:
66
后缀自动机 (suffix automaton, SAM) 是一个能解决许多字符串相关问题的有力的数据结构。(否则我们也不会用它) 举几个例子,以下的字符串问题都可以在线性时间内通过 SAM 解决 1.在另一个字符串中搜索一个字符串的所有出现位置。(诶?KMP好像能做) 2.计算给定的字符串中有多少 ...
分类:
其他好文 时间:
2019-12-17 20:35:36
阅读次数:
102
题真好。 也帮我回忆起了快两个月没动的$SAM$。 我只能想到$68$分的数据。 题目要求给出一个串$S$。 然后每次询问给出一个串$T$和两个变量$l,r$ 要求出有多少个本质不同串是$T$的子串而不是$S[l,r]$的子串。 前面$68$分是$l=1,r=n$的。 直接做。 首先我们对$S$建出 ...
分类:
其他好文 时间:
2019-12-16 17:43:40
阅读次数:
128
后缀自动机感性理解 后缀自动机实是不是很好理解, 尤其是直接看大段的证明, 不知道它在干什么, 可能会有点懵 那我先介绍一下我的感性理解好了, 大家看这篇文章可能会更好的理解其他人的博客QAQ 前置芝士 : trie树 先来讲一下假后缀树($ n^2 $) , 由于它是假的所以很容易理解, 不用怕 ...
分类:
其他好文 时间:
2019-12-08 10:57:54
阅读次数:
82
联赛前练练码力. code: #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #define N 200006 #define ll long long #define lson t[x].ch[ ...
分类:
其他好文 时间:
2019-11-10 11:55:24
阅读次数:
119
并不是很难啊,把细节想好了再写就很轻松了~ code: ...
分类:
其他好文 时间:
2019-11-01 20:29:52
阅读次数:
87
luogu博客看不了 从百度快照把文字扒了下来 然后latex没法看 借用博客园latex,看完就删 以下正文 史上最通俗的后缀自动机详解$by\space KesdiaelKen$网上的解析都太巨佬了,搞得本蒟蒻看了2天才看懂……感觉本文会比网上大多数文章通俗易懂很多,并且会对程序作具体解析,适合 ...
分类:
其他好文 时间:
2019-10-26 15:38:05
阅读次数:
93
(啊,图片好像还有CSDN水印呢) 主要参考资料:CLJppt。 预备知识 自动机组成:状态、初始状态、终止状态、状态转移、字符集。 什么是状态? 经典图片: ACADD对应的SAM <! more 对于整个串而言,初始状态(以下简称为init)为ROOT,终止状态 集合 (以下简称end)为最上方 ...
分类:
其他好文 时间:
2019-10-15 19:05:11
阅读次数:
103
题意: 求两个串的最大$LCS$。 思路: 把第一个串建后缀自动机,第二个串跑后缀自动机,如果一个节点失配了,那么往父节点跑,期间更新答案即可。 代码: cpp include include include include include include include include inclu ...
分类:
其他好文 时间:
2019-10-13 19:14:46
阅读次数:
119
题意: 求$n$个串的最大$LCS$。 思路: 把第一个串建后缀自动机,然后枚举所有串。对于每个串,求出这个串在$i$节点的最大匹配为$temp[i]$(当前串在这个节点最多取多少),然后我们求出最终所有串在$i$节点的匹配最小值$mn[i]$(即为所有串在$i$节点都能取到多少),答案即为$max ...
分类:
其他好文 时间:
2019-10-13 18:31:33
阅读次数:
109