hdu kmp
xws117123
微博地址 http://weibo.com/2139773423/profile?rightmod=1&wvr=6&mod=personinfo
展开
-
hdu 1711 KMP
# include # include int m,n; int a[1000100]; int b[10100],c[10100]; void get_next() { int k=-1,j=0; c[0]=-1; while(j<n) { if(k==-1||b[j]==b[k]) c[++j]=++k;原创 2014-03-04 20:17:19 · 546 阅读 · 0 评论 -
HDU 3336 一个next数组就解决了
这道题本来是用来练习KMP的 结果貌似一个next数组就可以解决 首先 对于每一个元字符串的前缀数组来说 至少会有一个与他匹配的 (其实就是他本身) 那么 再看看next数组的含义 每一个不为0的next数就代表着有一个子串重复过一次 比如abab 的next数组为0001 b所在的1 就代表着长度为1 的原字符串的前缀数组重复过一个 即a重复了一次 这原创 2015-05-06 21:13:44 · 468 阅读 · 1 评论