UVa 540 Team Queue
2016-12-01 22:04
381 查看
题目:点击打开链接
思路:将每个组的排队情况都用短的队列存起来,观察可得总的队列的顺序中每一段都是一个短的队列,所以用这些短的队列构造总的队列时,只用存储顺序就可以了。
提交两次:第一次presentation error ,原因是多组数据未用空行分隔,以后要多注意格式问题。
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
using namespace std;
int main() {
int t=0;
while(1) {
int n;
string a;
queue<int> longque;
queue<int> shortque[1001];
map<int,int> group;
cin>>n;
if(n==0) {
break;
}
t++;
cout<<"Scenario #"<<t<<endl;
for(int i=1;i<=n;i++){
int m;
cin>>m;
int x;
for(int j=1;j<=m;j++){
cin>>x;
group[x]=i;
}
}
while(cin>>a) {
if(a=="ENQUEUE") {
int x;
cin>>x;
if(shortque[group[x]].empty()){
longque.push(group[x]);
}
shortque[group[x]].push(x);
} else if(a=="DEQUEUE") {
while(shortque[longque.front()].empty()){
longque.pop();
}
cout<<shortque[longque.front()].front()<<endl;
shortque[longque.front()].pop();
} else if(a=="STOP") {
break;
}
}
cout<<endl;
}
return 0;
}
思路:将每个组的排队情况都用短的队列存起来,观察可得总的队列的顺序中每一段都是一个短的队列,所以用这些短的队列构造总的队列时,只用存储顺序就可以了。
提交两次:第一次presentation error ,原因是多组数据未用空行分隔,以后要多注意格式问题。
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
using namespace std;
int main() {
int t=0;
while(1) {
int n;
string a;
queue<int> longque;
queue<int> shortque[1001];
map<int,int> group;
cin>>n;
if(n==0) {
break;
}
t++;
cout<<"Scenario #"<<t<<endl;
for(int i=1;i<=n;i++){
int m;
cin>>m;
int x;
for(int j=1;j<=m;j++){
cin>>x;
group[x]=i;
}
}
while(cin>>a) {
if(a=="ENQUEUE") {
int x;
cin>>x;
if(shortque[group[x]].empty()){
longque.push(group[x]);
}
shortque[group[x]].push(x);
} else if(a=="DEQUEUE") {
while(shortque[longque.front()].empty()){
longque.pop();
}
cout<<shortque[longque.front()].front()<<endl;
shortque[longque.front()].pop();
} else if(a=="STOP") {
break;
}
}
cout<<endl;
}
return 0;
}
相关文章推荐
- UVA 540 - Team Queue
- UVA 540 Team Queue(queue的使用)
- UVa540 Team Queue (queue)
- UVA - 540 - Team Queue
- UVA540 TeamQueue
- 经典第五章 例 5-6 UVA 540 Team Queue(队列的简单应用)【queue】
- uva 540 Team Queue---比较好的数据结构题!!!!!思路不全面啊!
- uva 540 Team Queue
- UVA - 540 Team Queue
- UVa 540 Team Queue(团队队列)
- UVA540 Team Queue(队列简单用法)
- [UVA] 540 Team Queue
- UVa 540 Team Queue
- ACM学习历程——UVA540 Team Queue(队列,map:Hash)
- E - Team Queue UVA - 540
- 【例题5-6 UVA 540 】Team Queue
- UVA 540 Team Queue
- UVA 540 Team Queue
- uva 540 Team Queue
- Team Queue UVA - 540 (stl queue使用)