String Problem HDU - 3374
1017 단어 KMP / KMP 확장
상세 하 게 해석 하 다https://wenku.baidu.com/view/b0ef1be7a6c30c2258019ede.html
문자열 최대 최소 표시 법 시작 위치 구하 기
#include
using namespace std;
int go[1000010];
int n;
char ch[1000010];
void kmp()
{
int i,j;
go[0]=-1;
i=0,j=-1;
while(i0) j+=(k+1);
else i+=(k+1);
}
else
{
if(t>0) i+=(k+1);
else j+=(k+1);
}
if(i==j) j++;
k=0;
}
}
return min(i,j)+1;
}
int main()
{
int i,minn,maxx,l;
while(scanf("%s",ch)!=EOF)
{
n=strlen(ch);
kmp();
minn=getmm(0);
maxx=getmm(1);
if(n%(n-go[n])==0) l=n/(n-go[n]);
else l=1;
printf("%d %d %d %d
",minn,l,maxx,l);
}
return 0;
}