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
正则表达式描述了一种字符串匹配的模式,通过这个模式在特定的函数中对字符串进行匹配、查找、替换及分割等操作。正则表达式作为一个匹配的模板,是由原子(普通字符,例如字符a到z)、有特殊功能的字符(称为元字符,例如*、+和?等),以及模式修正符三部分组成的文字模式。
分类:
其他好文 时间:
2014-08-11 23:54:43
阅读次数:
352
//普通的暴力求解法
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