摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3336这题运用了next函数的性质,next[n],其实就是求从前往后数的字符串和从后往前数的字符串完全对应的最长位数(从后数和从前数不能完全相同,即去掉其本身);将出现次数相同的next依次累加,最后汇总(记得加上每一个子串都有本身出现了的一次),这里使用的next函数是以next[0]=-1开始的苦逼……next[0]=0的写法还没研究出来View Code #include<stdio.h>#include<string.h>#define mod 10007int next[2 阅读全文
posted @ 2013-05-09 23:36 执着追求的IT小小鸟 阅读(122) 评论(0) 推荐(0) 编辑
摘要: next[n],其实就是求从前往后数的字符串和从后往前数的字符串完全对应的最长位数(从后数和从前数不能完全相同),举例如a[5]=ababbc,next[0]=0(也可以是-1,网上的教程表示无所谓)next[1]=0,这个串(ab)从前缀数有a,ab,从后缀数有b,ab……不能相同,所以没一样的,为0.next[2]=1,这个串(aba)从前缀数有a,ab,aba,从后缀数有a,ba,aba……不能相同(去掉aba和aba),还剩下a[0]即a与a[3]即a完全对应,为1.next[3]=2,这个串(abab)从前缀数有a,ab,aba,abab从后缀数有b,ab,bab,abab……不能相 阅读全文
posted @ 2013-05-09 23:26 执着追求的IT小小鸟 阅读(1070) 评论(0) 推荐(0) 编辑