阅读理解
题目
注意:
son的含义
insert函数
query函数
set的使用
#include <bits/stdc++.h>
using namespace std;
const int N=5e6+7;
int son[N][26];
int idx;
set<int> se[N];
int n,m;
void insert(char s[],int x)
{
int p=0;
for(int i=0;s[i];i++){
int u=s[i]-'a';
if(son[p][u]==0) son[p][u]=++idx;
p=son[p][u];
}
se[p].insert(x);
}
void query(char s[])
{
int p=0;
bool flag=true;
for(int i=0;s[i];i++){
int u=s[i]-'a';
if(son[p][u]==0) flag=false;
p=son[p][u];
}
if(flag==false){
printf("\n");
return;
}
for(auto i:se[p]){
printf("%d ",i);
}
printf("\n");
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
//第i篇文章
int l;scanf("%d",&l);
for(int j=1;j<=l;j++){
//第j个单词
char s[27];
scanf("%s",s);
insert(s,i);
}
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
char s1[27];
scanf("%s",s1);
query(s1);
}
return 0;
}