字典树全WA
查看原帖
字典树全WA
514610
mzyc_yang2021楼主2022/7/14 11:07

样例没问题,一交就WA。

#include<bits/stdc++.h>
using namespace std;
#define N 500010
int n,m,cnt,t,tree[N][30],f[N][110];
void insert(string str,int a)
{
	int len=str.size();
	int u=1;
	for(int i=0;i<len;i++)
	{
		int c=str[i]-'a';
		if(!tree[u][c]) tree[u][c]=++cnt;
		u=tree[u][c];
	}
	f[u][a]=1;
	return;
}
void find(string str)
{
	int len=str.size();
	int u=1;
	for(int i=0;i<len;i++)
	{
		int c=str[i]-'a';
		if(!tree[u][c]){cout<<endl;return;}
		u=tree[u][c];
	}
	for(int i=1;i<=t;i++)
		if(f[u][i]==1) cout<<i<<" ";
	cout<<endl;
	return;
}
int main()
{
	string str;
	cin>>t;
	for(int k=1;k<=t;k++)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>str;
			insert(str,k);
		}
	}
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>str;
		find(str);
	}
	return 0;
}
2022/7/14 11:07
加载中...