82分,WA#5#9,求条
查看原帖
82分,WA#5#9,求条
1618888
wgd666楼主2025/7/24 16:58
#include <bits/stdc++.h>
using namespace std;
const int N=1e3+5;
long long h[N][5*N];
int n,l[N],m,base=131;
string a[N][5*N],b[10004];
int mod=1e9+7;
int hashe(string x)
{
	int lx=x.size();
	int z=0;
	for (int i=0;i<=lx;i++)
	z+=((int)x[i]*(long long)pow(base,lx-i))%mod ;
	return z;
}
int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		scanf("%d",&l[i]);
		for (int j=1;j<=l[i];j++){
		cin>>a[i][j];
		h[i][j]=hashe(a[i][j]);
		}
	}
	cin>>m;
	for (int i=1;i<=m;i++)
		{
			cin>>b[i];
			int c=hashe(b[i]);
			for (int j=1;j<=n;j++)
			{
				for (int k=1;k<=l[j];k++)
				{
					if (c==h[j][k])
					{
						cout<<j<<" ";
						break;
					}
				}
			}
			cout<<endl;
		}
	return 0;
}
2025/7/24 16:58
加载中...