WA#10 ,QWQ
查看原帖
WA#10 ,QWQ
600112
_HHJ楼主2022/8/28 22:08
#include <iostream>
#include <cstring>
using namespace std;
#define IOin(x) freopen(#x,"r",stdin)
#define IOout(x) freopen(#x,"w",stdout)
const int N = 5e5 + 20;
int son[N][27];
bool cnt[N][200];
int idx;
void ins(char str[],int x)
{
    int p = 0;
    for(int i  = 0;i < strlen(str); i ++ )
    {
        int u = str[i] - 'a';
        if(!son[p][u]) son[p][u] = ++idx;
        p = son[p][u];
    }
    cnt[p][x]=1;
}
int main()
{
   //IOin(P3879.in);
    char str[400];
    int n;
    cin >> n ;
    for (int i = 1 ; i <= n ; i ++ )
    {
        int m;
        cin >> m ;
        for(int j = 1 ; j <= m ; j ++ )
        scanf("%s",str),ins(str,i);
    }
    int q;
    cin >> q;
    while(q--)
    {
        scanf("%s",str);
        int p = 0;
        bool flag = 1;
        for(int i = 0;i < strlen(str);i++)
        {
            int u = str[i] - 'a';
            if(!son[p][u])
            {
                flag = 0; 
                break;
            }
            p = son[p][u];
        }
        if(flag)
                for(int i = 1 ; i <= n ; i ++ )
                    if(cnt[p][i])printf("%d ",i);
        puts(" ");
        
    }


    return 0;
}
2022/8/28 22:08
加载中...