随笔分类 -  字符串—kmp

摘要:P3426 [POI2005]SZA-Template 链接 分析: 首先T一定是S的一个前缀,也是一个后缀。 判断一个前缀s[1...i]是不是满足条件,那么求出s[1...i]在s中出现的所有位置,如果相邻的两个位置之间的距离的最大值小于等于i,那么就是满足的。 于是可以建出fail树,每次从根 阅读全文
posted @ 2019-03-25 17:50 MJT12044 阅读(298) 评论(0) 推荐(0)
摘要:4820: [Sdoi2017]硬币游戏 链接 分析: 期望dp+高斯消元。 首先可以建出AC自动机,Xi表示经过节点i的期望次数,然后高斯消元,这样点的个数太多,复杂度太大。但是AC自动机上末尾节点只有n个,并且只有n个有用。所以考虑优化一下。 一个串内部的转移是没有必要的,考虑转移到结尾节点的转 阅读全文
posted @ 2019-02-18 10:53 MJT12044 阅读(221) 评论(0) 推荐(0)
摘要:1009: [HNOI2008]GT考试 https://www.lydsy.com/JudgeOnline/problem.php?id=1009 分析: f[i][j]表示第一个字符串到i,与第二个匹配了j个的方案数。新加一个字符,如果第一个字符串仍与第二个一样,那么转移到f[i+1][j+1] 阅读全文
posted @ 2018-09-13 21:33 MJT12044 阅读(179) 评论(0) 推荐(0)
摘要:1511: [POI2006]OKR-Periods of Words https://www.lydsy.com/JudgeOnline/problem.php?id=1511 题意: 对于一个串的所有前缀,设为s,求出它的最大前缀Q,使得s为QQ的前缀。求最大前缀长度的和。 分析: KMP+ne 阅读全文
posted @ 2018-07-22 18:13 MJT12044 阅读(348) 评论(0) 推荐(0)
摘要:题目链接 题意:给n个字符串,求出每个字符串的num值,加1后相乘。num[i]表示1~i中,有多少没有重叠的公共前缀后缀。 分析: kmp中p数组表示最大的公共前缀后缀。设一cnt数组,表示1~i中有多少公共前缀后缀(包括重叠的),那么cnt[1]=1,(自己是自己的公共前后缀)。 那么:cnt[ 阅读全文
posted @ 2018-03-23 10:18 MJT12044 阅读(185) 评论(0) 推荐(0)
摘要:#1015 : KMP算法 #1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一只河蟹,于是河蟹就向小H 阅读全文
posted @ 2018-03-23 09:00 MJT12044 阅读(201) 评论(0) 推荐(0)
摘要:P3375 【模板】KMP字符串匹配 P3375 【模板】KMP字符串匹配 P3375 【模板】KMP字符串匹配 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。 为了减少骗分的情况,接下来还要输出子串的前缀数组next。如果你不知道这是什么意思也不要 阅读全文
posted @ 2017-05-23 21:41 MJT12044 阅读(218) 评论(0) 推荐(0)