标签:color print memory 就是 get alt tran 字符串 ++
对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串
当 n%(n-next[n])==0 的时候 n-next[n] 就是当前字符串的最小循环节qwq 这性质好像laj在之前某篇博文里证明过qwq
1 #include "bits/stdc++.h" 2 using namespace std; 3 typedef long long LL; 4 const int MAX=1e6+5; 5 char s[MAX]; 6 int len,next[MAX]; 7 void get_next(){ 8 int i,j; 9 j=next[0]=-1;i=0; 10 while (i<=len){ 11 if (j==-1 || s[i]==s[j]) next[++i]=++j; 12 else j=next[j]; 13 } 14 } 15 int main(){ 16 freopen ("radio.in","r",stdin);freopen ("radio.out","w",stdout); 17 int i,j; 18 scanf("%d\n%s",&len,s); 19 get_next(); 20 printf("%d",len-next[len]); 21 return 0; 22 }
BZOJ-1355: [Baltic2009]Radio Transmission (傻逼KMP)
标签:color print memory 就是 get alt tran 字符串 ++
原文地址:http://www.cnblogs.com/keximeiruguo/p/7787171.html