求调0分
查看原帖
求调0分
1031934
捧着风的少年楼主2023/12/3 09:47

求大佬帮调代码!hash:

#include <bits/stdc++.h>
using namespace std;
const int N = 2e3, M = 6e3, X = N * M, P = 30;
int n, m, l;
#define ull unsigned long long
map <ull, vector <int> > a;
char s[M];
ull hs(char s[M])
{
	int len = strlen(s);
	ull hs = 0;
	for(int i = 0; i < len; i++)
	{
		hs = hs * P + s[i] - 'a';
	}
	return hs;
}
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> l;
		while(l--)
		{
			cin >> s;
			a[hs(s)].push_back(i);
		}
	}
	cin >> m;
	while(m--)
	{
		cin >> s;
		int h = hs(s);
		for(int i = 0; i < a[h].size(); i++)
		{
			printf("%d%c", a[h][i], i == a[h].size() - 1 ? '\n' : ' ');
		}
		if(a[h].size() == 0)puts("");
	}
}
2023/12/3 09:47
加载中...