hdu3746专题

HDU3746-KMP循环节

题目:题目链接   题意:给你一个字符串,要求将字符串的全部字符最少循环2次需要添加的字符数。   例子: abcabc 已经循环2次,添加数为0 abcac 没有循环2次,添加字符abcac。数目为5. abcabcab 已经循环过2次,但第三次不完整,需要添加数为1     next函数求法:   void getnext(const char *s){int i =

KMP算法及应用(hdu2087剪花布条 )Power Strings (POJ2046)Cyclic Nacklace(HDU3746)

KMP由Knuth(D.E.Knuth)、Morris(J.H.Morris)和Pratt(V.R.Pratt)三人设计的线性时间字符串匹配算法。所以叫做KMP。。。。。 字符串匹配,就是从一个字符串中查找出另一个字符串所在位置,当然也可能出现查询不到的情况。 比如给出目标字符串 ss: abcabcabce 所要匹配的模式串 s: abcabce 当匹配到前6位是,都是成功的,但