题目描述
输入格式
输出格式
样例
数据范围与提示
题解
Power-Strings的弱化版。
最小循环节直接就是$n-nxt[n]$,然后注意下边界,除一下就行了。
1 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 2 #228004 #10045. 「一本通 2.2 练习 1」Radio Transmission Accepted 100 103 ms 5232 KiB C++ / 385 B qwerta 2018-10-14 10:14:56 3 4 #include<cstdio> 5 #include<iostream> 6 using namespace std; 7 string s; 8 int nxt[1000003]; 9 int main() 10 { 11 //freopen("a.in","r",stdin); 12 int n; 13 cin>>n; 14 cin>>s; 15 int k=-1; 16 nxt[0]=-1; 17 for(int i=1;i<n;++i) 18 { 19 while(k!=-1&&s[i]!=s[k+1])k=nxt[k]; 20 if(s[i]==s[k+1])k++; 21 nxt[i]=k; 22 } 23 cout<<n-(nxt[n-1]+1); 24 return 0; 25 }