请问这题的hash函数该怎么设计?
查看原帖
请问这题的hash函数该怎么设计?
658786
STUDENT00楼主2022/10/6 12:10

随便写了一个hash函数,结果0分

#include<bits/stdc++.h>
#define mod 10007
using namespace std;
int n,l,m;
string str;
bool vis[mod][1010];
int hsh(string str){
	int num=0;
	for(int i=0;i<str.length();i++){
		num=(num*29+str[i]-'a')%mod;
	}
	return num;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&l);
		while(l--){
			cin>>str;
			vis[hsh(str)][i]=1;
		}
	}
	scanf("%d",&m);
	while(m--){
		cin>>str;
		int t=hsh(str);
		for(int i=1;i<=n;i++){
			if(vis[t][i]) printf("%d ",i);
		}
		printf("\n");
	}
	return 0;
}
2022/10/6 12:10
加载中...