求助
查看原帖
求助
547238
篮网总冠军楼主2024/7/27 15:51
#include <bits/stdc++.h>
using namespace std;

long long s[1000005];
long long base=1443,mod=1e9+9;
long long m[1000005];
int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	int n;
	cin>>n;
	m[0]=1;
	for(int i=1;i<=n;i++) m[i]=m[i-1]*base%mod;
	string r;
	long long h=0;
	cin>>r;
	for(int i=0;i<n;i++){
		h=h*base+r[i];
		h%=mod;
		s[i]=h;
	}
	int cnt=0;
	for(int i=1;i<=n;i++){
		long long t=s[n-1]-s[n-i]*m[i];
		t%=mod;
		if (s[i-1]==t){
			cnt=i;
			break;
		}
	}
	cout<<cnt<<endl; 
	return 0;
}

2024/7/27 15:51
加载中...