字符串--kmp
fnq9999
这个作者很懒,什么都没留下…
展开
-
HDU-1711 KMP入门
#include<bits/stdc++.h>using namespace std;#define en '\n'#define ll long longconst ll maxn =1e6+10;#define lowbit(x) (x&-x)int f[maxn];int rd(){int tem;scanf("%d",&tem);return tem;}int n,m,nxt[maxn],a[maxn],b[maxn];void getnxt(){.原创 2020-08-04 21:20:08 · 118 阅读 · 0 评论 -
bzoj 1009: [HNOI2008]GT考试 KMP and 矩阵快速幂
题意:给你 1数字串 模数 和长度问能生成多少个n长度不包含给定数字串的串 0<=a[i]<=9解:1、想到dp dp[len][sta] :sta:指的是从前到后已经匹配了多少数组串中的数N很大直接dp不可能---->矩阵快速幂优化dpvoid kmp(){ int j=-1,i=0;nxt[0]=-1;int len=strlen(s); ...原创 2019-09-05 19:17:22 · 105 阅读 · 0 评论 -
Codeforces 808G - Anthem of Berland KMP and简单DP
题意:给两个字符串s,t s的一些位置的字母任意,问t最多在s上出现几次 (可重叠)解:****滚动数组容易忘清空。**1.上来想到AC自动机,-->只有一个t -->kmp求失配指针。然后转移就是:dp[i+1][jnxt]=max(dp[i+1][jnxt],dp[i][j]+(jnxt==lent));其中第一维长度,第二维是当前长度匹配t的长度多少...原创 2019-09-27 19:41:55 · 258 阅读 · 0 评论 -
Codeforces 825F String Compression Kmp and 简单DP
题意:给一个字符串让你去压缩,问最小长度为多少就比如:aaaaaa 可以表示为 6a :长度为2 ,3aa长度为3,1aaaaaa长度为7解:1、一段具有周期性质的substring 压缩最强的方式就是用最小的循环节去表示(在8000以内是这样(手动验证))。想到用kmp找循环节2、那么思考数据范围可以作n^2的DPdp[i]表示长度为I的最小表发方法的长度#inc...原创 2019-10-03 16:42:26 · 161 阅读 · 0 评论