
KMP/AC自动机
文章平均质量分 67
KMP、AC自动机
sz_165394732
这个作者很懒,什么都没留下…
展开
-
(CSP2019模拟)阅读
题意有nnn个字符串,每次可以把每个字符串都标记至多一个前缀,但这些前缀之间不能有包含关系,求把所有字符串的所有前缀都标记完的最小次数。数据范围:nnn,字符串总长≤100000\le100000≤100000题解考虑一个字符串SSS的前缀aaa包含于另一个字符串TTT的前缀bbb,则在TTT的bbb上跳nextnextnext指针,一定会经过aaa。而这又是多个串的问题,故考虑建ACAC...原创 2019-11-03 15:54:18 · 242 阅读 · 0 评论 -
#4457. 创造
题意有n和串,要从中按顺序选出一些,使它们拼在一起(不能交换顺序)长度为k,求最小字典序(满足一定有解)。范围n<=3000,k<=1e4,∑∣si∣\sum |s_{i}|∑∣si∣ ≤\le≤ 1e6题解考虑DP,记前i个串组成长度为j的字典序最小的串为f,但这样显然效率太低,又不可直接优化,故考虑有什么性质可以用来优化。考虑前i个串组成长度为j的串后,后面的长度也要...原创 2019-07-19 22:30:51 · 101 阅读 · 0 评论 -
CF585F Digits of Number Pi
题目链接如果子串必须是SSS的前缀,那么是一个经典的单个字符串匹配问题,用KMP+数位DP记录目前匹配到的位置即可。而任意子串就相当于SSS的所有后缀的前缀,是多个字符串匹配问题,又注意到有用的只有每个后缀的前d/2d/2d/2个字符,对它们建立ACACAC自动机即可,效率O(10d2s)O(10d^{2}s)O(10d2s)。代码:#include<bits/stdc++.h>...原创 2020-01-27 22:31:52 · 272 阅读 · 0 评论