欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

1458:Seek the Name, Seek the Fame

时间:2024-06-15 22:41 作者:admin 点击:
#includebits/stdc++.husing namespace std;int getchs(char c){return c-'a'+1;}int n;int jz=29;int mod=1000000007;string s;vectorlong long hashhz(string s){ vectorlong long HS(400005,0);long long jzs=1;for(int i=s.size()-1;i=0;i--){HS[s.size()
#include<bits/stdc++.h>
using namespace std;
int getchs(char c){
	return c-'a'+1;
}
int n;
int jz=29;
int mod=1000000007;
string s;
vector<long long> hashhz(string s){
    vector<long long> HS(400005,0);
	long long jzs=1;
	for(int i=s.size()-1;i>=0;i--){
		HS[s.size()-i]=(getchs(s[i])*jzs+HS[s.size()-i-1])%mod;
		jzs*=jz;
		jzs%=mod;
	}
    return HS;
}
vector<long long> hashqz(string s){
    vector<long long> hs(400005,0);
	for(int i=1;i<=s.size();i++){
		hs[i]=(hs[i-1]*jz+getchs(s[i-1]))%mod;
	}
    return hs;
}
int main(){
    while(cin >> s){
        vector<long long> hs=hashqz(s);
        vector<long long> HS=hashhz(s);
	    for(int i=1;i<=s.size();i++){
			if(hs[i]==HS[i])
                cout<<i<<" ";
		}
		cout << endl;
	}
    return 0;
}


(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%