样例过了,全WA,求大佬解惑
查看原帖
样例过了,全WA,求大佬解惑
778441
zzzz00000楼主2025/8/29 17:04
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define fi first
#define se second
#define ls x<<1
#define rs x<<1|1
int n,tr[500005][30],cnt,b[500005][30],m;
void insert(int x){
	string s;
	int u=0;
	cin>>s;
	for(int i=0;i<s.size();++i){
		int p=s[i]-'a';
		if(!tr[u][p]) tr[u][p]=++cnt;
		u=tr[u][p];
	}
	b[u][x]=1;
}
void query(){
	string s;
	int u=0;
	cin>>s;
	for(int i=0;i<s.size();++i){
		int p=s[i]-'a';
		if(!tr[u][p]){
			cout<<' '<<endl;
			return;
		}
		u=tr[u][p];
	}
	for(int i=1;i<=n;++i){
		if(b[u][i]){
			cout<<i<<' ';
		}
	}
	cout<<endl;
	return;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;++i){
		int x;
		cin>>x;
		for(int j=1;j<=x;++j) insert(i);
	}
	cin>>m;
	for(int i=1;i<=m;++i) query();
	return 0;
}
2025/8/29 17:04
加载中...