求助
查看原帖
求助
224926
让风忽悠你楼主2021/11/14 12:44

Loj上能过 但是在lg上就WA了

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream> 
#define N 1000005

using namespace std;

char s1[N],s2[N];
int len1,len2,j,ans;
int nxt[N];

int main(){
	while(scanf(" %s",s1+1)!=EOF){
		if(s1[1]=='.') break;
		memset(nxt,0,sizeof(nxt));
		len1=strlen(s1+1);
		j=0;
		for(int i=2;i<=len1;i++){
			while(j && s1[i]!=s1[j+1]) j=nxt[i];
			if(s1[i]==s1[j+1]) j++;
			nxt[i]=j;
		}
		len2=len1-nxt[len1];
		if(len1%len2) printf("1\n");
		else printf("%d\n",len1/len2);
	}
	return 0;
}
2021/11/14 12:44
加载中...