KMP
zy691357966
这个作者很懒,什么都没留下…
展开
-
[裸KMP][HDU1711][Number Sequence]
题意找到子串在母串出现的第一个位置解法裸的KMP特别的地方第一次不看模板自己敲的KMP#include<stdio.h> const int maxn=100000; const int MAXN=1000000; int next[maxn]; int S[MAXN]; int T[maxn]; int N,M; void get_next() { for(int i=2;i<=M;i++原创 2015-09-19 11:47:34 · 424 阅读 · 0 评论 -
[KMP求最小循环节][HDU1358][Period]
题意求所有循环次数大于1的前缀 的最大循环次数和前缀位置 解法直接用KMP求最小循环节 当满足i%(i-next[i])&&next[i]!=0 前缀循环次数大于1 最小循环节是i-next[i] #include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> using namespace原创 2015-09-21 00:01:05 · 431 阅读 · 0 评论 -
[KMP][HDU3336][Count the string]
题意计算所有S的前缀在S中出现了几次思路跟前缀有关的题目可以多多考虑KMP的NEXT数组#include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> using namespace std; char S[2000000]; int NEXT[2000000]; int dp[2000000];//dp[i原创 2015-09-22 14:49:16 · 438 阅读 · 0 评论 -
[KMP求最小循环节][HDU3746][Cyclic Nacklace]
题意给你个字符串,问在字符串末尾还要添加几个字符,使得字符串循环2次以上。解法无论这个串是不是循环串 i-next[i] 都能求出它的最小循环节代码:/* 思路:kmp+字符串的最小循环节问题分析: 1 题目要求的是给定一个字符串,问我们还需要添加几个字符可以构成一个由n个循环节组成的字符串。 2 可知我们应该先求出字符串的最小循环节的长度:假设字符串的长度为len,那么最小的循环节就是cir =原创 2015-09-22 17:14:25 · 686 阅读 · 0 评论