AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int n,m;
map<string,int> mp;
struct Node{
vector<int>vec;
int num;
}a[N];
int cnt;
int main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(nullptr);
cin>>n;
for(int i=1;i<=n;i++)
{
int l;
cin>>l;
for(int j=1;j<=l;j++)
{
string s;
cin>>s;
if(mp[s]==0)
mp[s]=++cnt;
int x=mp[s];
if(a[x].num!=i)
{
a[x].vec.push_back(i);
a[x].num=i;
}
}
}
cin>>m;
string s;
for(int i=1;i<=m;i++)
{
cin>>s;
int x=mp[s];
if(mp[s]==0)
cout<<endl;
else
{
cout<<a[x].vec[0];
for(int i=1;i<a[x].vec.size();i++)
cout<<" "<<a[x].vec[i];
cout<<endl;
}
}
return 0;
}
把N改成5e6+5就会全部MLE,不知道什么原因。。。