WA #10,救救孩子
查看原帖
WA #10,救救孩子
685167
0x7ffffycf楼主2022/8/26 19:37
#include<bits/stdc++.h>
using namespace std;
char s[10010];
int a[500010][26];
bool b[500010][110];
int n,m;
int tot=0;
void insert(int x){
	int now=0;
	scanf("%s",s+1);
	int l=strlen(s+1);
	for(int i=1;i<=l;i++){
		int p=s[i]-'a';
		if(!a[now][p])
			a[now][p]=++tot;		
		now=a[now][p];
	}
	b[now][x]=1;//在第x行出现 
}
void check(){
	int now=0;
	scanf("%s",s+1);
	int l=strlen(s+1);
	int fl=1;
	for(int i=1;i<=l;i++){
		int p=s[i]-'a';
		if(!a[now][p]){
			fl=0;
			break;
		}
		now=a[now][p];
	}
	if(fl){
		for(int i=1;i<=n;i++){
			if(b[now][i]) printf("%d ",i);							
		}
	}
	puts("");
}
int main(){
	int L;
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&L);
		for(int j=1;j<=L;j++){
			insert(i);
		} 
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		check();
	}
	return 0;
}
2022/8/26 19:37
加载中...