紫书章五例题六 团队队列 uva 540(queue)
2017-04-03 15:42
399 查看
开始竟然第一反应是优先级队列,,估计是因为题目中说 要将相同队的放在一起,所以就想在队列中直接排好。然后重载了<,还是不行。然后看了一下子紫书,用了队列,每个队有一个队列,然后这些队的顺序又有一个队列
然后queue q 的常用
q.push()
q.pop()
q.front();
q.empty();
然后queue q 的常用
q.push()
q.pop()
q.front();
q.empty();
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #include <cmath> using namespace std; #define maxn 1005 int vis[1000005]; int v[maxn]; queue <int > qz,q[maxn]; char s[20]; int main() { // freopen("E:\\input.txt","r",stdin); int t,kase=0; while(scanf("%d",&t)!=EOF&&t){ memset(v,0,sizeof(v)); memset(vis,0,sizeof(vis)); printf("Scenario #%d\n",++kase); for(int i=0;i<t;i++) { int a,b; scanf("%d",&a); for(int j=0;j<a;j++){ scanf("%d",&b); vis[b]=i; } } for(;;){ scanf("%s",s); if(s[0]=='S'){ for(int i=0;i<t;i++) while(!q[i].empty()) q[i].pop(); while(!qz.empty()) qz.pop(); break; } if(s[0]=='E'){ int a; scanf("%d",&a); q[vis[a]].push(a); if(!v[vis[a]]) { qz.push(vis[a]); v[vis[a]]=1; } } else if(s[0]=='D'){ int k=qz.front(); while(q[k].empty()) { qz.pop(); v[k]=0; k=qz.front(); } printf("%d\n",q[k].front()); q[k].pop(); } } printf("\n"); } return 0; }
相关文章推荐
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- 紫书章五例题六 团队队列 uva 540(queue)
- UVa 540 Team Queue(团队队列)
- 《算法竞赛入门经典2ndEdition 》例题5-6 团体队列(Team Queue, Uva540)
- 例题5-6 UVA 540 Team Queue团体队列
- Uva540 Team Queue 【队列】【例题5-6】
- 紫书章五例题七 丑数 UVa 136(多种方法,在这里介绍优先级队列)
- 紫书章五例题七 丑数 UVa 136(多种方法,在这里介绍优先级队列)
- uva 540 Team Queue (队列模拟)
- 5_6 团体队列(UVa540)<queue与STL其他容器的综合运用>
- uva540 Team Queue(模拟:队列)
- ACM学习历程——UVA540 Team Queue(队列,map:Hash)
- HDU 1387 && UVa 540 Team Queue(队列应用)
- 例题5-6 团体队列 Uva540
- UVa - 540 - Team Queue(STL - 队列queue)