uva 540 (Team Queue UVA - 540)
又是一道比较复杂的模拟题。题中有两种队列,一种是总队列,从前向后。其他的是各个团体的小队列,因为入队的人如果有队友的话,会优先进入团体队列。
所以我们先设置两个队列和一个map,设置map倒是可以不用担心开多大数组这样的问题。然后开两个队列,一个是基本的q1,另一个是q2[1010]
一般的STL容器如string vector deque都是有两种直接初始化的方法(不严谨)一种是a(maxn)这个和一维数组差不多,直接赋给里面多少元素,另一种就是a[maxn]这个差不多是一个容器的数组,每一个a[i]代表一个容器。还可以跟string相似的用a[i][j]去寻找容器内的元素
然后先把各个小团体放入总队列(如果团体队列里面没有其他元素),然后去除的时候就是把前面的团体队列里面的首位去除就行,输出团体队列的首位元素,如果这之后第一个团体队列没有元素,那么直接踢掉这个团体队列
我的代码(刘汝佳算法)
#include <bits/stdc++.h>
//这个地方还得注意不要按照定义数组的习惯把STL容器都放到main外面,现在我还不知道怎么像memset一样清零STL容器,为此还WA。
using namespace std;
main()
{
	int n;
	int cas=0;
	while(cin>>n&&n)
	{
		map<int,int> mp;
		for(int i=0;i<n;i++)
		{
			int t;
			cin>>t;
			while(t--)
			{
				int num;
				cin>>num;
				mp[num]=i;
			}
		}
	queue<int> q1,q2[1010];
	printf("Scenario #%d\n",++cas);
	string a;
	while(cin>>a)
	{
		if(a[0]=='S')
		break;
		if(a[0]=='D')
		{
			int t=q1.front();
			cout<<q2[t].front()<<endl;
			q2[t].pop();
			if(q2[t].empty())
			q1.pop();
		}
		if(a[0]=='E')
		{
			int num;
			cin>>num;
			int t=mp[num];
			if(q2[t].empty()) q1.push(t);
			q2[t].push(num);
		}
	}
	cout<<"\n";
}
}
												
											uva 540 (Team Queue UVA - 540)的更多相关文章
- UVA.540 Team Queue  (队列)
		
UVA.540 Team Queue (队列) 题意分析 有t个团队正在排队,每次来一个新人的时候,他可以插入到他最后一个队友的身后,如果没有他的队友,那么他只能插入到队伍的最后.题目中包含以下操作: ...
 - UVA 540 Team Queue(模拟+队列)
		
题目代号:UVA 540 题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page ...
 - uva 540 - Team Queue(插队队列)
		
首发:https://mp.csdn.net/mdeditor/80294426 例题5-6 团体队列(Team Queue,UVa540) 有t个团队的人正在排一个长队.每次新来一个人时,如果他有队 ...
 - Team Queue UVA - 540
		
Queues and Priority Queues are data structures which are known to most computer scientists. The Te ...
 - UVa 540 Team Queue 【STL】
		
题意:给出t个团体,这t个团体排在一起,每次新来一个x排队,如果在整个的团体队列中,有x的队友,那么x排在它的队友的后面,如果他没有队友,则排在长队的队尾 求给出的每一个出队命令,输出出队的人的编号 ...
 - UVA 540 Team Queue
		
思路:使用优先队列,按队伍出现的时刻和自身出现的时刻定义优先级,同时记录此时刻队列里是否有自己队伍的人,一开始没注意,wa了两发. #include<map> #include<qu ...
 - 【UVA - 540】Team Queue (map,队列)
		
Team Queue Descriptions: Queues and Priority Queues are data structures which are known to most comp ...
 - UVA Team Queue
		
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013840081/article/details/26180081 题目例如以下: Team Qu ...
 - 【暑假】[深入动态规划]UVa 1627 Team them up!
		
UVa 1627 Team them up! 题目: Team them up! Time Limit: 3000MS Memory Limit: Unknown 64bit IO Forma ...
 
随机推荐
- 在Centos6.5下Samba的简单配置
			
本文的目的主要用来说明怎样在CentOS6.5的环境下配置出一个简单可用的samba服务,而且能够通过windows对其文件进行訪问 安装相关软件 # yum install samba samba- ...
 - LeetCode 541. Reverse String II (反转字符串 II)
			
Given a string and an integer k, you need to reverse the first k characters for every 2k characters ...
 - 递归,迭代,堆栈三种方式实现单链表反转(C++)
			
#author by changingivan# 2016.04.12#include <iostream> #include <stack> using namespace ...
 - 2014年最简单、快捷的美股Scottrade开户攻略
			
[开篇重点提示] 1.scottrade是国内用户用得最多的美股证券交易平台. 2.不用邮寄纸质资料,网上开户全搞定. 3.申请表格填写优惠代码,获取免费3次交易费用,鄙人的推荐优惠代码是 87195 ...
 - Hybrid 开发
			
主讲人:吴彬 要学习某个东西之前,我们首先要了解这个东西是什么?然后我们要了解这东西有什么用,有什么好处和弊端?最后我们要知道这东西怎么用? 简单点就是 ——是什么?有什么用?怎么用? 那么进入正题 ...
 - unsigned 赋值负数输出情况 & printf输出格式
			
%d 有符号10进制整数 %ld 长整型 %hd短整型 %i 有符号10进制整数 %o 无符号8进制整数 %u 无符号10进制整数 %x 无符号的16进制数字,并以小写abcdef表示 %X 无符号的 ...
 - IDEA maven不能下载源码:" can not download source"问题
			
用IDEA无法下载源码,可以在命令行项目根目录下,执行如下命令 :mvn dependency:resolve -Dclassifier=sources下载 也可以在idea设置中设置为自动下载源码
 - sort与sorted的区别
			
描述 我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序 : 方法1.用对List的成员函数sort进行排序 方法2.用内置函数sorte ...
 - [Apple开发者帐户帮助]七、注册设备(3)禁用或启用设备
			
您可以禁用和启用设备,但不能从开发者帐户中删除它.您可以禁用不再用于开发或测试的设备.但是,这样做会使包含设备的配置文件无效,并且不会增加当年设备的总数. 所需角色:帐户持有人或管理员. 在“ 证书” ...
 - AirtestIDE详解(跨平台的UI自动化编辑器)
			
Airtest 是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具. AirtestIDE 是一个跨平台.多端(Windows.web.android.ios.游戏)的UI自动化测 ...