F hash TLE 求调
  • 板块学术版
  • 楼主Eva_91418
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/7/19 22:00
  • 上次更新2025/7/20 13:48:26
查看原帖
F hash TLE 求调
749219
Eva_91418楼主2025/7/19 22:00
#include<bits/stdc++.h>
#define mod 1234567654321
#define b 171
using namespace std;
int ha[10000005];
int n,ans[1000];
int hashh(char s){
	int x=0;
	x=(x*b+(int)s)%mod;
	return x;
}
bool cmp(int aa,int bb){
	return aa>bb;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int n,q;
	string s;
	cin>>n>>q;
	cin>>s;
	while(q--){
		memset(ans,0,sizeof(ans));
		int op;
		cin>>op;
		if(op==1){
			int a;char x;
			cin>>a>>x;
			s[a-1]=x;
		}
		else{
			int l,r;
			cin>>l>>r;
			string s1;
			s1=s.substr(l-1,r);
			//cout<<"#"<<s1<<endl;
			for(int i=0;i<s1.size();i++){
				ha[i]=hashh(s1[i]);
			}
			//sort(ha,ha+n);
			for(int i=1;i<s1.size();i++)if(ha[i]==ha[i-1])ans[(int)s1[i]]++;
			sort(ans,ans+1000,cmp);
			cout<<ans[0]+1<<endl;
		}
	}
	return 0;
}
2025/7/19 22:00
加载中...