poj2752 KMP】的更多相关文章

Seek the Name, Seek the Fame POJ-2752 本题使用的算法还是KMP 最主要的片段就是前缀数组pi的理解,这里要求解的纸盒pi[n-1]有关,但是还是需要使用一个循环来依次找到前面符合的前缀(所谓符合就是可以保持既是前缀也是s的后缀的子串长度). #include<iostream> #include<cstdio> #include<string> #include<algorithm> #include<set>…
需要理解next[]的意义.之前看到大牛的博客,next[]讲的非常清楚. 利用next[],当前位子的前面那一段和next[当前位子]的前面那一段是相同的.又next[next[当前位子]]与next[当前位子]有一段相同,所以当前位子的前面一段和 next[next[当前位子]]的前一段有相同即可. #include<stdio.h> #include<string.h> #include<stack> using namespace std; #define ma…
题目链接:https://vjudge.net/problem/POJ-2752 Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21220   Accepted: 11065 Description The little cat is so famous, that many couples tramp over hill and dale to Byteland…
KMP继续练手.题目问的是一个串前缀等于后缀的可能长度是哪些,输出来.题目考的是对KMP失配指针的理解,当最后一位失配(即'\0'那里)时,指针会移动到前缀对应匹配的部分,所以这个长度是我们要的,然后接着这个新的前缀的失配指针移到的部分,与这个前缀的后缀也是匹配的..这样一直滚下去就可以了得到所有可能的值. 贴一记代码. #include<iostream> #include<cstring> #include<string> #include<cstdio>…
Description The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the little cat to give names to their newly-born babies. They seek the name, and at the same time seek the fame. In order to escape from such b…
题意:求一个串所有的前后缀字串: 解题思路:kmp和拓展kmp都行,个人感觉拓展kmp更裸一点: 拓展kmp: #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<map> #define maxn 500500 using namespace std; char t[maxn]; char s[maxn]; int exnext[m…
题目链接:https://cn.vjudge.net/problem/POJ-2752 题意 给一个字符串,求前缀串跟后缀串相同的前缀串的个数 例:alala 输出:a, ala, alala 思路 仔细想想,fail[len]的返回值其实就是匹配成功的最大后缀串 得到这个后缀串后,比这个串更小的串一定还是被包含在这个新的后缀串中 迭代即可 提交过程 AC 代码 #include <cstring> #include <cstdio> const int maxm=4e5+20;…
首先先讲一下KMP算法作用: KMP就是来求在给出的一串字符(我们把它放在str字符数组里面)中求另外一个比str数组短的字符数组(我们叫它为ptr)在str中的出现位置或者是次数 这个出现的次数是可以重叠的 例如:在数组   ababa    中  aba的出现次数-----------它的答案是2------分别是从[0---2]  [2---4] 他们是可以重叠的,但是不可以完全重叠(废话T_T) KMP算法主要有两个模板 1.https://blog.csdn.net/starstar1…
Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11831   Accepted: 5796 Description The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the little cat to give names t…
题意:    给出一个字符串str,求出str中存在多少子串,使得这些子串既是str的前缀,又是str的后缀.从小到大依次输出这些子串的长度. 这个就是next数组的应用,next数组真是很深奥啊. 根据最后一个next数组的值,递归去找前面的值,直到是0时停止.证明见链接. 链接:http://www.cnblogs.com/dongsheng/archive/2012/08/13/2636261.html #include <map> #include <set> #inclu…