[HDU 1358]Period[kmp求周期]
2013-09-13 17:16
363 查看
题意:
每一个power前缀的周期数(>1).
思路:
kmp的next. 每一个前缀都询问一遍.
每一个power前缀的周期数(>1).
思路:
kmp的next. 每一个前缀都询问一遍.
#include <cstring> #include <cstdio> const int MAXN = 1000005; int next[MAXN]; char s[MAXN]; //93MS 5092K void prekmp() { next[0] = -1; int j = -1; for(int i=1;s[i];i++) { while(j!=-1 && s[j+1]!=s[i]) j = next[j]; if(s[j+1]==s[i]) j++; next[i] = j; } } int main() { int n,cas = 0; while(scanf("%d",&n) && n) { scanf("%s",s); printf("Test case #%d\n",++cas); prekmp(); int len; for(int i=1;i<n;i++) { len = i-next[i]; int k; if(!((i+1)%len)) { if((k=(i+1)/len)>1) printf("%d %d\n",i+1,k); } } printf("\n"); } }
相关文章推荐
- HDU 1358 Period(KMP求周期)
- HDU 1358 Period 求周期串(kmp)
- HDU 1358Period(KMP周期串)
- HDU 1358 Period (kmp求周期)
- [HDU 1358]Period[kmp求周期]
- hdu1358 Period KMP
- hdu 1358 Period(kmp求一个串的重复子串)
- HDU 1358 Period (KMP)
- 【KMP(循环节)】poj 2406 Power Strings(外:hdu 1358 Period)
- hdu 1358 Period(KMP之next数组)
- hdu 1358 period 求循环节 KMP
- HDU--杭电--1358--Period--KMP--next值的应用
- hdu 1358 Period ( kmp )
- hdu 1358 period KMP
- HDU - 1358 Period(KMP next数组)
- hdu 1358(Period)next数组的运用 计算前i个字符的循环周期 /poj 2406 计算字符串的周期
- hdu 1358 Period(KMP之next数组)
- HDU 1358——Period(KMP 失配函数)
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period (kmp扩展)