
kmp
xiaoyu1_1
学生
展开
-
poj 2406 Power Strings---kmp
首先弄明白next[]数组的意义,next[i]表示 第i个数的前 L 个字符串等于 后 L 个数的字符串; 例如:字符串 abcabcda next[0]=-1; next[1]=0; a next[2]=0; ab next[3]=0; abc next[4]=1; abca, next[5]=2; abcab, next[6]=3; abcabc原创 2013-07-08 15:01:02 · 546 阅读 · 0 评论 -
poj 1961 Period---kmp
和poj 2046一样,多加了一维 http://blog.youkuaiyun.com/u010489389/article/details/9271843 #include #include #include char p[1000050]; int next[1000050]; int n; void getnext() { int k=-1,j=0; next[0]=-1原创 2013-07-08 15:14:33 · 550 阅读 · 0 评论 -
POJ 3080 Blue Jeans----kmp
此题就是枚举 第一个字符串的 子串,判断是否其他的字符串里,也有这个子串,然后挑出长度最长的子串 注意:如果子串长度相同,输出字典序小的子串。。 #include #include #include char p[11][66]; int next[66]; char y[61]; void getnext(char *a) { int k=-1,j=0; next[0]=-1;原创 2013-07-10 01:32:46 · 610 阅读 · 0 评论 -
POJ 2185 Milking Grid---kmp
http://blog.sina.com.cn/s/blog_69c3f0410100tyjl.html 这个博客讲的非常好, 这道题我感觉就是有问题,上面博客将了,网上一般的 两种做法, 但都是错的,但在poj上都能过,他说的我没看懂,就编了个求最小公倍数的水过了1_1 #include #include #include char p[10040][80]; int ne原创 2013-07-10 01:26:34 · 546 阅读 · 0 评论 -
poj 2752 Seek the Name, Seek the Fame---kmp
Sample Input ababcababababcabab aaaaa Sample Output 2 4 9 18 1 2 3 4 5 样例一:前2个和后2个一样,前4个和后4个一样,前9个和后9个一样,前18个 和后18个一样 可以发现规律,next[18]=9; next[9]=4; next[4]=2; next[2]=0; 所以写原创 2013-07-10 01:09:55 · 543 阅读 · 0 评论 -
POJ 3461 Oulipo---kmp
求母串里有多少个子串。。 #include #include #include char p[1000050],s[1000050]; int next[1000050]; int n1,n2; void getnext() { int k=-1,j=0; next[0]=-1; while(j<n1){ if(k==-1 || p[k] == p[j]){ k原创 2013-07-10 01:19:38 · 529 阅读 · 0 评论