
ACM-KMP
文章平均质量分 51
路小白_zZ
这个作者很懒,什么都没留下…
展开
-
hdu 1686(kmp)
题意:两个字符串,模式串和目标串,输出每个模式串在目标串中出现次数,可重叠。题解:kmp模板题,每次找到后数量加一。#include #include const int N = 1000005;char p[N], t[N];int next[N], len1, len2;void getnext() { int pp = -1, k = 0; next[0] =原创 2014-09-20 23:05:55 · 733 阅读 · 0 评论 -
hdu 1711(kmp)
题意:题解:原创 2014-09-20 23:38:02 · 626 阅读 · 0 评论 -
acdream 1683(kmp)
题意:有两个夫妻,名字分别是a和b两个字符串,然后给孩子起名字,名字可以是父亲的名字前缀和母亲名字后缀相等的那部分,问可以给孩子起多少个名字。题解:kmp中的next[i]数组记录了前i个字符前缀与后缀相等的长度是多少,那么可以利用这个特性,先把a和b拼接起来总长度是len,然后得到next数组,从next[len]往前找,前缀与后缀相等的串中是否还有前后缀相等串存在,一直到next[i] =原创 2015-04-15 23:34:10 · 786 阅读 · 0 评论 -
acdream 1721(kmp)
题意: Problem Description女神邀请众ACdream开联欢会,显然作为ACM的佼佼者,气球是不能少的~。女神准备了三种颜色的气球,红色,黄色,绿色(交通信号灯?) 有气球还不能满足女神,女神要在气球上写字。 写什么好呢~?字符串神马的最有爱了~ 女神先拿出一个字符串,然后把字符串的每一个真·前缀写到了黄色气球上面,每一个真·后缀写到了绿色气球上面,每一个真·子串写到了红色气原创 2015-05-13 23:28:00 · 492 阅读 · 0 评论 -
uvalive 3026(kmp)
题意:给出长度为n的字符串,求每个前缀的最短循环节,如果存在大于1的循环节,输出前缀长度和循环节个数。 题解:next[i]维护位置i之前的字符串的前缀和后缀公共部分的最大长度(不包括字符串本身,否则最大长度始终是字符串本身),所以如果i % (i - next[i]) == 0,说明i - next[i]是一个循环节。#include <cstdio>#include <cstring>#i原创 2015-09-25 21:42:52 · 429 阅读 · 0 评论