Uva 540 Team Queue
来源:互联网 发布:整型变量的数据范围 编辑:程序博客网 时间:2024/05/01 02:18
这道题水过,直接开个二维数组,然后模拟Team Queue!这道题还可以改进一下,就是用数组模拟一个循环链表,不过貌似有点麻烦。
下面是代码:
#include<stdio.h>#include<string.h>#define MAXN 5005int Q[MAXN][1005];int hash[1000000];int n,m,flag;int last=1003,num=1004;void enqueue(int x){ int i,j; int tag=0; for(i=1;;i++)//找到x要插入的team { if(hash[x]==Q[i][0]&&Q[i][num]!=0) { tag=1; break; } if(Q[i][0]==-1) break; } if(tag)//如果x能够插队 { ++Q[i][last]; Q[i][Q[i][last]]=x; ++Q[i][num]; } else//x不能插队 { Q[i][1]=x; Q[i][0]=hash[x]; Q[i][last]=Q[i][num]=1; }}void dequeue(){ for(int j=1;;j++) { if(Q[flag][j]!=-1) { printf("%d\n",Q[flag][j]); Q[flag][j]=-1; --Q[flag][num]; if(Q[flag][num]==0) ++flag; return; } }}int main(){ int T=0; while(scanf("%d",&n),n) { ++T; for(int i=0;i<n;i++) { scanf("%d",&m); int t; for(int j=0;j<m;j++) { scanf("%d",&t); hash[t]=i; } } memset(Q,-1,sizeof(Q)); printf("Scenario #%d\n",T); char s[10]; flag=1; while(scanf("%s",s)&&s[0]!='S') { if(s[0]=='E') { int x; scanf("%d",&x); enqueue(x); } if(s[0]=='D') dequeue(); } printf("\n"); } return 0;}
- UVa 540 Team Queue
- uva 540 team queue
- Uva 540 Team Queue
- uva 540 - Team Queue
- UVa 540 - Team Queue
- UVA 540 Team Queue
- uva 540 Team Queue
- uva 540 Team Queue
- Uva 540 Team Queue
- UVa 540 - Team Queue
- UVa 540 - Team Queue
- uva 540 Team Queue
- UVA 540 Team Queue
- Team Queue UVA 540
- uva 540 - Team Queue
- UVa 540 - Team Queue
- UVA - 540 - Team Queue
- UVA 540 team queue
- JMS调用IBM MQ监听模式
- Excel 在测试中的应用(二)--添加功能键
- perl-opengl几何变换函数
- 有效的沟通非常重要
- 对象和函数
- Uva 540 Team Queue
- AWS 上 Apache httpd 服务器性能调优
- 数学杂记
- 什么是java
- Codeforces #165 div2 B Multithreading
- CSS3 图形
- 为什么favicon.ico在360浏览器下不显示?
- cocos2d-x初学笔记11:粒子系统Particle
- 2013-2-2 - simple-loader