Sicily 1443
来源:互联网 发布:笔记本触摸屏测试软件 编辑:程序博客网 时间:2024/06/06 10:40
题目蛮好理解,就是简单的对队列进行操作。ac后看了别人的代码,发现可以先把每个Job设置成一个struct,里面记录当前的位置和优先级。我直接在while循环里面进行判断了。所以看起来比较冗余。
题目:http://www.soj.me/1443
代码:
// Copyright <lijiancheng> [2014]// Sicily 1443#include <iostream>#include <deque>using namespace std;int main () {int testcase;cin >> testcase;while (testcase--) {int n, m, ans = 1;deque<int> q;cin >> n >> m;// 获得第m个位置的priorityint prio = 0;for (int i = 0; i < n; i++) {int temp;cin >> temp;q.push_back(temp);if (i == m) prio = temp;} // 每次遍历遍历一遍 找最大 若第一个是最大则直接pop出去,否则进行移位int pos = m;while (1) {int maxPrio = 0;int maxPos = 0;deque<int>::iterator it = q.begin();for (int i = 0; it != q.end();i++, it++) {if (*it > maxPrio) {maxPrio = *it;maxPos = i;}}if (maxPos == 0) {if (pos == 0) {cout << ans << endl;break;}else {ans++;q.pop_front();pos--;}}else {if (pos == 0) {int temp = q.front();q.pop_front();q.push_back(temp);pos = q.size()-1;}else {pos--;int temp = q.front();q.pop_front();q.push_back(temp);}}}}}
0 0
- sicily 1443
- sicily 1443
- Sicily 1443
- Sicily 1443
- sicily 1443 Printer Queue
- sicily 1443 Printer Queue
- POJ 3125 && Sicily 1443 Printer Queue(模拟/队列)
- POJ 3125 && Sicily 1443 Printer Queue(模拟/队列)
- Sicily 1027
- sicily 1007
- sicily 1795
- sicily 1036
- sicily 1419
- sicily 1889
- sicily 1684
- sicily 1686
- sicily 1004
- sicily 1135
- Java 正则表达式详解
- 2015年欢聚时代(YY)校园招聘Java笔试题目
- Qt/Embedded嵌入式开发环境的建立
- Windows 7 USB/DVD Download Tool
- Nginx 反向代理
- Sicily 1443
- MATLAB 学习笔记(二)——————mat文件
- 网络资源link
- 京东2015年应届生招聘笔试题(A)卷
- 1001 害死人不偿命的(3n+1)猜想 (15)
- 20141108 【 单片机——万年历DS1302——中断 】 用DS1302模块 & 数码管显示万年历
- 子查询中可以使用group by和order by子句
- 数据结构之交换排序之快速排序(参考整理严蔚敏数据结构)
- C++的那些秘密---函数返回局部变量