![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
KMP
Nightmare丶
登高必自卑,行远必自迩
展开
-
BZOJ 1009: [HNOI2008]GT考试(KMP+DP+矩阵快速幂)
Description阿申准备报名参加GT考试,准考证号为N位数X1X2…Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。他的不吉利数学A1A2…Am(0<=Ai<=9)有M位,不出现是指X1X2…Xn中没有恰好一段等于A1A2…Am. A1和X1可以为0Input第一行输入N,M,K.接下来一行输入M位的数。 N<=10^9,M<=20...原创 2020-01-10 00:57:31 · 129 阅读 · 0 评论 -
Codeforces D. Prefixes and Suffixes(KMP)
题目链接题解:KMP计算公共前后缀,从后往前累加出现次数即可。AC代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1e5+50;int nxt[MAXN],ans[MAXN],dp[MAXN],n,tot;char s[MAXN];inline ...原创 2019-11-18 20:55:09 · 164 阅读 · 0 评论 -
535D - Tavas and Malekas
题意:给你一个子串s,且在长度为n的原串中出现的m个插入位,问原串有几种可能。题解:其实就是子串s的前缀和后缀在匹配,所以我们只需要用KMP预处理出后缀和前缀相等的所有长度,前后判断即可。AC代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 1e6+50...原创 2019-11-16 03:26:14 · 141 阅读 · 0 评论 -
Codeforces 126B Password
题意:给你一个字符串,求出第k小的子串,相同子串不同位置算做不同AC代码:#include<bits/stdc++.h>using namespace std;//typedef long long LL;#define int long longconst int MAXN = 2e5+50;const int INF = 0x3f3f3f3f;int nxt[MA...原创 2019-11-11 18:54:22 · 175 阅读 · 1 评论 -
Codeforces 1200 E. Compress Words
题意:给你N个由大小写字母,数字组成的字符串,让你依次合并这些字符串。例如:S = “sample” ,T = “please” 则合并和为"samplease"题解:KMP设我们已经将前面iii个串合并后的字符串为SSS,第i+1i+1i+1个串为TTT我们只需要预处理出TTT的nextnextnext数组,让SSS的后len(T)len(T)len(T)位去匹配TTT,然后把后面没...原创 2019-11-10 15:55:53 · 134 阅读 · 0 评论