kmp
文章平均质量分 75
CMTM4
ACM退役
展开
-
【USACO2.3.1】最长前缀 KMP(爆内存) 暴力(居然更快还AC)
真的很奇怪,在其他OJ上交了,速度很快排到第二(最慢一个点80ms)。。但是用内存挺多的。 交USACO的时候,在用了15.8M内存的时候RE了。 我猜是限了16M内存。 看来不能省事……我得去重写了/*TASK:prefixLANG:C++*/#include #include #include #include using namespace std原创 2015-02-16 19:16:04 · 786 阅读 · 0 评论 -
POJ 2406 依然是KMP求循环节
既然是求循环节。。代码略加修改即可通过循环节相关,可见我之前几篇KMP题的某一篇讲解 while (1) { int lenP = 0; if (!get_s(pattern)) break; if (pattern[0]=='.')break; lenP = strlen(pattern); pattern[lenP] = 0; kmp_pre(pattern,原创 2016-08-20 13:59:47 · 369 阅读 · 0 评论 -
FZU 1901 KMP 有点意思的题了
这题强行OJ第一……但是加了无数技巧以后得到的,恕我自私,那个代码就不公开了~ 7086642016-08-20 02:12:27Accepted1901GNU C++109 ms8560KB6257Bcmtm4题目大意:给一个字符串。问你,有多少个P的取值方案,可以对任意i,让s[i] == s[i+原创 2016-08-20 02:43:09 · 1121 阅读 · 0 评论 -
HDU 2203 循环串匹配
模板串复制一遍那就行了 memmove(text + lenT, text, sizeof(char)*lenT); lenT *= 2;然后就直接一样的模板ac code/*#include #include #include #include using std::tr1::unordered_map;*/#include #include原创 2016-08-19 15:46:50 · 251 阅读 · 0 评论 -
HDU 1358 KMP模板
新添加一个模板:get_repeat(int idx, int nex[])给入一个下标,返回:正数P:表示s[0]...s[idx] 可以从 s[0]...s[(idx+1)/P] 这前几个字母,经过重复P次,得到s[0]..s[idx]负数-P:表示最少需要添加P个数字,才能使得s[0]..s[idx]成为可重复串特判:P=1: 表示串为a,abc,ab原创 2016-08-19 15:26:34 · 266 阅读 · 0 评论 -
hdu 2087 KMP裸题【没有交集的匹配数】
匹配串aaaaaa模板串aa然后只算出现3次。这样的话,只要在find函数修改一行就行了templatebool find(T text[], int lenT, T pattern[], int lenP, int next[], vector &ret)//下标皆为从0开始{ ret.clear(); int j = 0; //初始化原创 2016-08-19 13:01:26 · 257 阅读 · 0 评论 -
HDU 3746 KMP的运用。【求字符串添加几个字符,可以成有循环节字符串】
KMP HDU 3746 KMP原创 2016-08-19 12:37:22 · 538 阅读 · 0 评论 -
HDU 1686 裸KMP
提示:数据格式有奇怪问题,读入T以后,不能用只getchar吃回车……当然选C++编译器可以通过/*#include #include #include #include using std::tr1::unordered_map;*/#include #include #include #include #include #include原创 2016-08-19 10:44:04 · 217 阅读 · 0 评论 -
HDU 1711 裸KMP,附KMP模板
//pattern为模板串,从0下标,长度为len。 返回next数组templatevoid kmp_pre(T pattern[], int len, int next[]){ next[0] = next[1] = 0; for(int i = 1 ; i < len ; i++) { int j = next[i]; while(j && pattern[i] !=原创 2016-08-18 21:28:31 · 341 阅读 · 0 评论 -
【USACO3.1.5】联系 位运算/KMP/AC自动机
吐槽:这题的输出真恶心恶心恶心恶心恶心*10000……TLE方法:暴力KMP,把所有的100 101 111之类的方案,全部和原串匹配一次…… 然后排序输出。Compiling...Compile: OKExecuting... Test 1: TEST OK [0.008 secs, 9424 KB] Test 2: TEST OK [0.003 sec原创 2015-02-24 23:06:12 · 563 阅读 · 0 评论 -
HDU 4763 KMP/EXKMP
KMP,扩展kmp,HDU 4763原创 2016-08-23 19:09:53 · 622 阅读 · 0 评论