stl签到题。写一个从string映射到set的map即可,其中set的作用是存储包含当前string的段落索引。
使用set替换vector是为了去重。
#include<bits/stdc++.h>
using namespace std;
int n, m, t;
string s;
map<string, set<int>> shan;
signed main() {
cin>>n;
for(int i=1; i<=n; i++) {
cin>>t;
while(t--) {
cin>>s; shan[s].insert(i);
}
}
cin>>m;
while(m--) {
cin>>s; int f=0;
for(auto &ele: shan[s]) {
if(f) cout<<' ';
cout<<ele;
f=1;
}
cout<<'\n';
}
}
//今天是诗岸的生日,让我们祝她生日快乐!!
//山山是最好的中文虚拟歌手!

京公网安备 11010502036488号