hdu 3374 String Proble

kmp+最小表示法

#include
#define maxn 1000010
using namespace std;
string str;
int nextt[maxn];
void get_next()
{
	nextt[0]=0;
	for(int i=1;i0) i=i+k+1;
				else j=j+k+1;
			}
			else
			{
				if(t<0) i=i+k+1;
				else j=j+k+1; 
			}
			if(i==j) j++;
			k=0;
		}
	}
	return min(i,j);
}
int main()
{
	cin.sync_with_stdio(false);
	while(cin>>str)
	{
		get_next();
		int ans;
		int p=str.size()-nextt[str.size()-1];
		if(str.size()%p==0) ans=str.size()/p;
		else ans=1; 
		int minn=f(0)+1;
		int maxx=f(1)+1;
		cout<


你可能感兴趣的:(hdu,KMP,最小表示法)