kmp
文章平均质量分 61
meme_y
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
kmp模板(HD1711)
虽然看的有点凌乱但是大概知道它是怎么搞得了,只是简单的了解了子串自我匹配的过程,和与模串匹配的过程,所以写了一下代 带你去找它 ~#include#includeint next[10005],n,m;int a[1000005],b[10005];void getnext(){ int i,j=0; next[1]=0; for(i=2;i<=m;i++) { whil原创 2013-04-03 20:10:37 · 517 阅读 · 0 评论 -
kmp oj 亲和串
看这里今天看 kmp 所以就做了亲和串一直在想怎么循环那个s1串啊原来是在加上一个它本身就是连在一起的作用 #include#includeint next[100005],n,m;char a[200010],b[100005];void getnext(){ int i,j=0; next[1]=0; for(i=2;i<=m;i++) { while(j>0&&b原创 2013-04-03 21:09:13 · 545 阅读 · 0 评论 -
Hd2087 剪花布条
点击打开链接今天做了几道kmp的题目算是对昨天学的进行总结吧。这道题的意思就是在模串中找子串的个数。#include#includeint next[1005];int sn,sm;char s1[10005],s2[1005];void getnext(){ //puts("++"); int i,j=0; next[1]=0; for(i=2;i<=sm;i++原创 2013-04-05 16:00:06 · 463 阅读 · 0 评论 -
Hd Simpsons’ Hidden Talents
点击打开链接这道题的意思就是让第一个字符串的前缀等于第二的字符串的后缀,看相似的字符有几个。因为之前做亲和串来的思,路因为每个字符如若不匹配都是要和第一个相比较的,我就把两个字符串连在一起,再让这个新的字符串自身匹配。但是要注意出现就是两个字符串相等的情况!~#include#includeint next[100005];int sn,sm;char str[100005],原创 2013-04-06 08:47:23 · 613 阅读 · 0 评论 -
kmp——next数组的应用---cout the string
点击打开链接这道题的意思是找出每个子串与串的匹配程度,换句话说题意是,给一串字符串,问这串字符串所有的前缀总共在这个字符串中出现了几次。一开始直接想到的事用暴力求解但是算了一下会超时。其实准确来说我还不是很清楚next数组的含义在这之前。就是单纯的理解为next[i]是目前这对前i的字符自我匹配的最大值(用kmp求字符串的Next数组,Next [ j ] = k 表示的是 (0 —–原创 2013-04-06 08:34:27 · 511 阅读 · 0 评论 -
字符串周期--hdu 3746 Cyclic Nacklace
通过这题得出了一个很重要的结论,在用kmp算法求出next数组后,len-next[len]的值就是该字符串的最小循环节,该字符串的其他循环节都是它的倍数,如果len恰好是len-next[len]的整数倍,那么该字符串就是个power string;如果next[len]为0,表示该字符串是非循环的;否则,按照len-next[len]的循环节,补齐最后一个循环节即为使该字符串成为power原创 2013-04-08 20:11:40 · 559 阅读 · 0 评论
分享