求助,全WA
查看原帖
求助,全WA
809708
whssy楼主2023/8/3 17:04
#include<iostream>
#include<string>
#include<vector>
using namespace std;
const int N=1e6+5;
int n,m;
int f[N][26],id;
vector<int> cnt[N];
int temp[1003];
void inserted(const string &s,int wenzhang){
	int len=s.size(),p=0;
	for(int i=0;i<len;i++){
		if(!f[p][s[i]-'a'])
			f[p][s[i]-'a']=++id;
		p=f[p][s[i]-'a'];
	}
	cnt[p].emplace_back(wenzhang);
}
int check(const string &s){
	int len=s.size(),p=0;
	for(int i=0;i<len;i++){
		if(!f[p][s[i]-'a'])
			return 0;
		p=f[p][s[i]-'a'];
	}
	int size=cnt[p].size();
	for(int i=0;i<size;i++)
		temp[i+1]=cnt[p][i];
	return size;
}
string str;
int main(){
	ios::sync_with_stdio(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		int length;
		cin>>length;
		for(int j=1;j<=length;j++){
			cin>>str;
			inserted(str,i);
		}
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>str;
		int len=check(str);
		for(int j=1;j<=len-1;j++)
			cout<<temp[j]<<' ';
		if(len) cout<<temp[len];
		cout<<endl;
	}
	return 0;
}
2023/8/3 17:04
加载中...