算法习题---5-7打印队列(UVa12100)
一:题目
有一个打印机,有一些任务在排着队打印,每个任务都有优先级。
打印时,每次取出队列第一个任务,如果它的优先级不是当前队列中最高的,就会被放到队尾,否则就打印出来。
输出初始队列的第m个任务的打印时间,每次打印花费单位1的时间。
(一)样例输入
(二)样例输出
二:代码实现
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <deque> using namespace std; typedef struct
{
int id;
int priority;
}Elem; deque<Elem> de_queue; //使用双端队列,其操作类似vector,但是可以两头操作 int main()
{
freopen("data5_7_h.in", "r", stdin);
freopen("data5_7_h.out", "w", stdout); int total, num, cur_id;
Elem ele;
cin >> total;
for (int i = ; i < total; i++)
{
de_queue.clear();
cin >> num >> cur_id; //信息获取
for (int j = ; j < num; j++)
{
ele.id = j;
cin >> ele.priority;
de_queue.push_back(ele);
}
//模拟操作
int count = ;
while (true)
{
//先找到最高优先级
int max_pri = ;
for (deque<Elem>::iterator it = de_queue.begin(); it != de_queue.end(); it++)
max_pri > (*it).priority ? max_pri : max_pri = (*it).priority;
//如果是出队该数据
if (de_queue.front().id == cur_id&&de_queue.front().priority == max_pri)
{
count++;
break;
}
else
{
if (de_queue.front().priority == max_pri)
{
de_queue.pop_front();
count++;
}
else
{
ele = de_queue.front();
de_queue.pop_front();
de_queue.push_back(ele);
}
}
}
cout << count << endl;
} freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
return ;
}
算法习题---5-7打印队列(UVa12100)的更多相关文章
- 算法习题---5.6团体队列(Uva540)
一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...
- Winform 打印PDF顺序混乱,获取打印队列
工作中PDF打印顺序混乱着实让我疼痛了好久,其实决绝方法非常简单,但没有想到这个点子的时候确实让我走了很多弯路 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方 ...
- Windows迁移打印机与打印队列
移动打印机时,打印机当前所在服务器为源服务器,打印机将迁移到的服务器为目的服务器. 步骤: 1.为源服务器创建打印机配置文件 printbrm -b -s Servername -f SaveFile ...
- 【算法习题】数组中任意2个(3个)数的和为sum的组合
题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...
- Linux基础命令---lpq查看打印队列
lpq lpq指令用来显示当前打印队列的状态.如果命令行中没有指定打印机或类,则将显示默认目标上排队的作业. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.ope ...
- 笔试题:C++打印队列
题目:打印队列 题目介绍:现在用打印机打印队列,已知打印任务有9个优先级(1-9),现在给出一系列任务,求输出打印顺序(任务下标,从0开始). 例: 输入:9,3,5,4,7,1 输出:0,4,2,3 ...
- ACM程序设计选修课——1044: (ds:队列)打印队列(queue模拟)
问题 A: (ds:队列)打印队列 时间限制: 1 Sec 内存限制: 128 MB 提交: 25 解决: 4 [提交][状态][讨论版] 题目描述 网络工程实验室只有一台打印机,它承担了非常繁重 ...
- UVA 12100 打印队列(STL deque)
题意: 给定n个优先级打印队列,然后从0开始编号到n-1.出队一个元素,如果他是队列中优先级最高的,打印(耗时一分钟),否则放到队尾(不耗时).给定一个m,求位置m的文件打印的时间. 分析: 用一个p ...
- 打印队列 (Printer Queue,ACM/ICPC NWERC 2006,UVA12100)
题目描述: 题目思路: 使用一个队列记录数字,一个优先队列记录优先级,如果相等即可打印: #include <iostream> #include <queue> using ...
随机推荐
- MyEclipse设置文件默认打开方式
MyEclipse设置文件默认打开方式 依次点击: [MyEclipse]-> [Preferences] -> [General] -> [Editors] -> [File ...
- Linux shell - 按时间和文件大小排序显示文件
在工作中有这样的情况,需要显示所有的文件,按照时间先后或者文件大小先后排序显示 命令:ls 1.按时间排序显示文件 1 test@> ll -rt 2.按文件大小排序显示文件(文件大小单位:k, ...
- learning armbian steps(3) ----- armbian 文件系统定制思路
如何定制自已的armbian文件系统. 1)uboot 2) kernel 3) rootfs 针对linux 系统开发人员来说,真正有用的只是其armbian文件系统, 将其制作成所需的文件系统 ...
- PDB符号文件
一.什么是PDB文件 PDB(Program DataBase),全称为“程序数据库”文件.存储程序的所有调试信息数据.在编译连接时,如果选择了/debug选项或/debug:full选项,则最新的M ...
- C++函数调用方式约定stdcall,cdecl,pascal,naked,thiscall,fastcall
https://www.cnblogs.com/xiangtingshen/p/11014514.html C++函数调用约定_cdecl约定:参数:从右向左依次入栈堆栈平衡:调用方平衡 #inclu ...
- nvarchar(MAX) 、ntext的差别
今天在做一个项目时,程序成功向数据库插入一条数据, 插入的是一篇比较大的文章,而且还有很多样式. Id是int型,Content用的是 ntext类型的 但是当我在手动改数据库Id时出现错误: 错误源 ...
- ModuleNotFoundError: No module named 'pynvx'
bogon:faceswap-master macname$ pip3 install pynvx Collecting pynvx Downloading https://files.pythonh ...
- 4、http协议之二
URL(Unifrom Resource Locator)简述 相对URL 从当前页面(同一个站点内或同一个文章内引用) 绝对URL 从当前页面或其他页面跳转而来(跨站引用) HTTPD版本<0 ...
- 在Typora中使用Latex
https://blog.csdn.net/happyday_d/article/details/83715440 今后可能更多在本地编辑出Markdown之后复制上博客或者上传到GitHub.
- hbase错误记录部分总结
错误1:org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired ...