uvalive3026专题

uvalive3026(kmp)

大白书上面的例题,不过真的不是很好理解,首先假设0到i是一个循环串,那么i-f[i]一定是一个最小正周期,其中f[i]是next数组.如下图,若错位部分不是一个最小循环节(假设是循环串,必定有循环节),那么匹配部分可以更长,矛盾,因此i-f[i]是最小循环节。 又假设i-f[i]是一个最小循环节,根据下图红色箭头可知串是一个回文串。 #include<set>#

[UVALive3026] Period 字符串

利用KMP的失配函数判断周期 充要条件i % (i - f[i]) == 0 并且i不能为0 #include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define SF scanf#define PF printf#define max(a, b) ((a) < (b) ? (b) : (a)