OI萌新 Orz 全WA求查错
查看原帖
OI萌新 Orz 全WA求查错
138390
Light_snow楼主2020/12/14 21:41
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long

int to[500005][50];
int get[500005][50];
int cnt;

ll t,n;

char a[5005];

void add(ll now,ll from){
	ll len = strlen(a + 1);
	for(int i = 1;i <= len;++i){
		if(to[now][a[i] - 'a' + 1])
		now = to[now][a[i] - 'a' + 1];
		else
		to[now][a[i] - 'a' + 1] = ++cnt,now = cnt;
	}
	if(get[now][get[now][0]] != from)
	get[now][++get[now][0]] = from;
	return ;
}

void find(){
	ll len = strlen(a + 1);
	ll now = 0;
	for(int i = 1;i <= len;++i){
		if(to[now][a[i] - 'a' + 1])
		now = to[now][a[i] - 'a' + 1];
		else{
			puts("");
			return;
		} 
	}
	for(int i = 1;i <= get[now][0] - 1;++i)
	if(get[now][i] != get[now][i - 1]) 
	std::cout<<get[now][i]<<" ";
	std::cout<<get[now][get[now][0]];
	puts("");
	return;
}

int main(){
	scanf("%lld",&t);
	for(int QWQ = 1;QWQ <= t;++QWQ){
		scanf("%lld",&n);
		for(int i = 1;i <= n;++i){
			scanf("%s",a + 1);
			add(0,QWQ);
		}
	}
	scanf("%lld",&t);
	for(int i = 1;i <= t;++i){
		scanf("%s",a + 1);
		find();
	}
}
2020/12/14 21:41
加载中...