![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
KMP
zafkiel_nightmare
弱弱的程序员
展开
-
hdu 1686 Oulipo
还是不怎么理解KMP#include#include#define maxn 10010using namespace std;string s1,s2;int nextt[maxn];void kmp(){ nextt[0]=-1; int l=0; int k=-1; while(l<s1.size()) { if(k==-1||s1[l]==s1[k]) ne原创 2015-08-18 15:48:44 · 451 阅读 · 0 评论 -
hdu 1358 Period
对next数组还是理解的不够透彻,要死要死要死#include#define maxn 1001000 using namespace std;string str;int nextt[maxn];void kmp(){ int l=0,k=-1; nextt[0]=-1; while(l<str.size()) { if(k==-1||str[l]==str[k])原创 2015-08-18 16:29:34 · 483 阅读 · 0 评论 -
hdu 1867 A + B for you again
不懂英文简直要是要死要死要死啊首先是谁是谁的字串问题,这个取决于重构的字符串的长度最小其次是当无论谁是谁的字串,重构字符串的长度都相等时,去字典序小的重构字符串英语不好是硬伤啊#include#include#include#define maxn 100100 using namespace std;string str;int nextt[maxn];void k原创 2015-08-18 17:28:39 · 457 阅读 · 0 评论 -
hdu 4300 Clairewd’s message
搞了半天才理解题目的意思,以为是拓展KMP,没想到普通的KMP也可以做,无语#include#include#define maxn 100010using namespace std;string a,b,c;int nextt[maxn];mapmapp;void change(){ mapp.clear(); for(int i=0;i<a.size();i++)原创 2015-08-20 20:14:58 · 435 阅读 · 0 评论 -
hdu 3374 String Proble
kmp+最小表示法#include#define maxn 1000010using namespace std;string str;int nextt[maxn];void get_next(){ nextt[0]=0; for(int i=1;i<str.size();i++) { int k=nextt[i-1]; while(str[i]!=str[k]&&原创 2016-06-08 14:59:43 · 327 阅读 · 0 评论