进制哈希RE求助
查看原帖
进制哈希RE求助
752094
MornHus楼主2023/3/13 13:49
#include<bits/stdc++.h>
using namespace std;
#define base 233
#define mod 9999991
int n,m;
int f[10000001];
int hashs(char str[]){
	int len=strlen(str);
	int ans=0;
	for(int i=0;i<len;i++){
		ans=(base*ans+(int)str[i])%mod;
	}
	return ans;
}
char a[100];
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%s",a);
		f[hashs(a)]++;
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++){
		scanf("%s",a);
		int h=hashs(a);
		if(f[h]==1){
			printf("OK\n");
			f[h]++;
		}else if(f[h]==0){
			printf("WRONG\n");
		}else{
			printf("REPEAT\n");
		}
	}
	return 0;
}
2023/3/13 13:49
加载中...