题解
2023-08-04 19:02:01
发布于:四川
6阅读
0回复
0点赞
这个题直接用队列模拟即可,我开始用的是queue套pair,然后pair套int和queue,到后面发现:queue没法迭代啊啊啊,警示后人。
代码:
#include <iostream>
#include <queue>
#include <unordered_map>
using namespace std;
int main(){
int n;
cin >> n;
vector<pair<int,queue<string>>> q;
unordered_map<string,int> mp;
for (int i=0;i<n;++i){
int m;
cin >> m;
for (int j=0;j<m;++j){
string t;
cin >> t;
mp[t]=i;
}
}
while (1){
string str;
cin >> str;
if (str=="STOP"){
return 0;
}
if (str=="ENQUEUE"){
string x;
cin >> x;
bool flag=true;
for (auto &item : q){
if (item.first==mp[x]){
item.second.emplace(x);
flag=false;
break;
}
}
if (flag){
queue<string> qwq;
qwq.emplace(x);
q.emplace_back(mp[x],qwq);
}
}
if (str=="DEQUEUE"){
cout<<q.front().second.front()<<endl;
q.front().second.pop();
if (q.front().second.empty()){
q.erase(q.begin());
}
}
}
}
这里空空如也
有帮助,赞一个