摘要: 题意:给出$n$个单词,求每个单词在这$n$个单词中出现的次数。 \(fail\) 树:AC自动机中每个$fail$指针的反向边作为一条有向边,因为每个点只有$1$个$fail$指针,所以除了根节点每个点入度为$1$,所以图是树形的。 那么对于这道题我们可以建出$fail$树,设$siz_i$表示有 阅读全文
posted @ 2020-10-06 08:53 CelticOIer 阅读(58) 评论(1) 推荐(0) 编辑
摘要: 线段树。 在树中我们维护四个东西:最长不下降子序列的长度,最长不上升子序列的长度,$4$的个数和$7$的个数。 线段树最重要的是$push,up$,也就是合并。 显然$4$的个数和$7$的个数就直接加一下,没什么好说的。 因为数列中不是$4$就是$7$,所以这个最长不下降子序列一定有一个$4$和$7 阅读全文
posted @ 2020-10-05 20:13 CelticOIer 阅读(73) 评论(1) 推荐(0) 编辑
摘要: 题意:给出$n$个字符串,求一个最短的串使得所有字符串都是这个串的子串。 先把字符串建出 AC 自动机,问题等价于求一条最小的链,使得这个连经过每个串的结尾。链上的字符即为所求字符串。 所以我们$bfs$,因为$n\leq 12$所以判断到没到过这个串的结尾可以用二进制,$0$表示没有到过,$1$表 阅读全文
posted @ 2020-09-08 17:08 CelticOIer 阅读(94) 评论(1) 推荐(0) 编辑
摘要: 这题看起来一大堆 LCT 的题解,那我就来发一个动点 SPFA 的吧。 SPFA 是啥不用我说了吧。 动点SPFA 这是一个动态加边的算法。 我们现在假设图中已经有了一些边,从源点$v0$的最短路为$d_1,d_2,d_3,\dots,d_n$。 我们考虑加一条边$(u,v,d)$,表示从$u$到$ 阅读全文
posted @ 2020-09-03 10:09 CelticOIer 阅读(75) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-08-27 09:40 CelticOIer 阅读(65) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-08-26 18:32 CelticOIer 阅读(224) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-08-19 21:17 CelticOIer 阅读(99) 评论(3) 推荐(0) 编辑