摘要:
题目链接 http://poj.org/problem?id=1961大致题意:给出一个串,输出第i位之前的串是由多少个相同的子串组成的。输出i的子串的个数。思路:在next数组中加一句判断即可if(i%(i-j) == 0 && i/(i-j) > 1) { printf("%d %d\n", i, i/(i-j));}这条语句是什么意思?要了解next数组的求法,那么就不难理解了。对于 i%(i-j) == 0遍历到第i个字符,前面字符串的长度为i,且前面字符串的前缀和后缀相等的字符的个数是j个。如果想要得到像题意那样的序列,则j必满足j》=i/2 阅读全文