SDUTOJ 2475 Power Strings

Posted brucemengbm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDUTOJ 2475 Power Strings相关的知识,希望对你有一定的参考价值。

技术分享
<pre class="cpp" name="code">#include<iostream>
#include<stdio.h>
#include<string.h>
#define N 1000005
int next[N];
char s[N];
using namespace std;
void getnext(char s[])//KMP算法的应用
{
	int j=-1,i=0,len;
	next[0]=-1;
    len=strlen(s);
	while(i<=len)
	{
		if(j==-1||s[i]==s[j])
		{
			++i;
			++j;
			next[i]=j;
		}
		else
		    j=next[j];
	}
}
int main()
{
	int len;
	while(cin>>s)
	{
		if(s[0]=='.')
		{
			break;
		}
		len=strlen(s);
		getnext(s);
	    if(len%(len-next[len])==0)
			cout<<(len/(len-next[len]))<<endl;//求最小循环节..事实上题意就是这个意思
	}
	return 0;
}





以上是关于SDUTOJ 2475 Power Strings的主要内容,如果未能解决你的问题,请参考以下文章

Power Strings

Power Strings

POJ - 2406 Power Strings

poj 2406 Power Strings

POJ 2406 Power Strings

poj2406 Power Strings