poj 2406 Power Strings(KMP求循环次数)...
分类:
其他好文 时间:
2014-08-13 10:31:48
阅读次数:
203
题目来源:URAL 1684. Jack's Last Word
题意:输入a b 把b分成若干段 每一段都是a的前缀
思路:b为主串 然后用a匹配b 记录到b的i位置最大匹配的长度 然后分割 分割的时候要从后往前
如果a = abac b = abab 那么如果从前往后 首先覆盖了aba 然后b就不能覆盖了 从后往前就可以了 首先覆盖ab 下一次还是ab
因为已经记录了到i位置的最大匹配...
分类:
其他好文 时间:
2014-08-12 22:19:14
阅读次数:
476
KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的KMP模板代码)...
分类:
其他好文 时间:
2014-08-12 22:14:05
阅读次数:
253
给定一个翻译表,即第i个字母用哪个字母表示
再给一个串,里面前面为密文,后面为明文,密文一定是完整的,但明文不完整或可能没有
求这个完整的前面密文后面明文的串
# include
# include
# include
using namespace std;
int len;
int next[100010];
char a1[100010],a2[1000...
分类:
其他好文 时间:
2014-08-12 22:09:24
阅读次数:
256
KMP的应用。直接使用s1产生next 数组,然后在s2中搜索s1,那么记录最后一个搜索到的数值,就是s1的前缀在s2中的最长后缀了。
本题应该不能直接调用strstr了吧。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-08-12 19:09:14
阅读次数:
192
本题是KMP的next数组的灵活运用。
具体就是看最后整个数列的最后一个字母,能有多少前缀。
理解了next数组就很容易了。
#include
#include
#include
using std::vector;
const int MAX_N = 400001;
char name[MAX_N];
int next[MAX_N], len;
void genNext()
{
...
分类:
其他好文 时间:
2014-08-12 17:16:54
阅读次数:
237
KMP的应用,不过查找的时候注意一点就够了:查找到一个子串的时候,直接跳过整个串,而不是使用next数组前跳,因为根据题意需要剪出小饰条,小饰条之间不能重叠。
const int MAX_N = 1001;
char txt[MAX_N], pat[MAX_N];
int next[MAX_N], len;
void genNext()
{
for (int i = 1, j = 0...
分类:
其他好文 时间:
2014-08-12 17:11:34
阅读次数:
197
//普通的暴力求解法
int?ViolentMatch(char*?s,?char*?p)??
{??
????int?sLen?=?strlen(s);??
????int?pLen?=?strlen(p);??
??
????int?i?=?0;??
????int?j?=?0;??...
分类:
其他好文 时间:
2014-08-11 21:40:54
阅读次数:
332
# include
# include
# include
using namespace std;
int n,m,next[10010],a[1000010],b[10010];
void Getnext()
{
int i=0,j=-1;
next[0]=-1;
while(i<m)
{
if(j==-1||b[i]==b[j])
...
分类:
其他好文 时间:
2014-08-11 21:27:33
阅读次数:
240
使用KMP寻找最长的前缀的方法,比一般的暴力法有快了很多。
本题一般的暴力法需要的是O(m*n*n*n),其中m是有多少字符串,而n是字符串长度,而使用KMP就可以把时间效率提高到O(m*n*n),减少了一个n,提高了一个档次啦。
速度快很多。
准确来说应该是利用KMP寻找一个字符串A,在另一个字符串B任意位置出现的A的最长的前缀字符串。
理解好KMP的next table就好办了。每次查找到相等字符的时候,保存好最长的前缀。
注意本题的条件:选取最前的字典顺序输出。老害我错的条件。...
分类:
其他好文 时间:
2014-08-11 12:01:02
阅读次数:
250