sicily--1443. Printer Queue
2012-07-28 11:27
211 查看
用优先级队列自动排序找出最高的优先级任务
只有打印出任务的时候才累加计数器
若当前打印的是“自己的”,则输出计数器
只有打印出任务的时候才累加计数器
若当前打印的是“自己的”,则输出计数器
#include<iostream> #include<queue> #include<vector> using namespace std; struct node { int priority; bool mark; }; int main() { int caseNum; cin >> caseNum; while(caseNum--) { int jobs; cin >> jobs; int myJob; cin >> myJob; priority_queue<int,vector<int> > sorted;//优先级队列,用以排序 queue<node> unsorted;//存储打印机内信息 for(int i = 0; i < jobs; i++) { node newNode; int priority; cin >> priority; if(i == myJob) { newNode.mark = true;//有标记的为“自己”的 newNode.priority = priority; } else { newNode.mark = false; newNode.priority = priority; } sorted.push(priority); unsorted.push(newNode); } int count = 0;//时间花费 while(!unsorted.empty()) { int max = sorted.top();//找出最大的“优先级” node temp = unsorted.front();//排在最前的任务 if(temp.priority == max)//轮到该任务 { sorted.pop(); unsorted.pop(); count++; if(temp.mark == true) break; } else { unsorted.pop(); unsorted.push(temp); } } cout << count << endl; } return 0; }
相关文章推荐
- sicily 1443 Printer Queue
- sicily 1443 Printer Queue
- Sicily 1443 Printer Queue
- POJ 3125 && Sicily 1443 Printer Queue(模拟/队列)
- Sicily1443—— Printer Queue
- POJ 3125 && Sicily 1443 Printer Queue(模拟/队列)
- sicily 1443.Printer Queue
- sicily 1443 Printer Queue
- SOJ 1443.Printer Queue
- 这周的一道程序设计题兼sicily1443 Printer Queue题解
- 1443. Printer Queue
- Sicily 1443
- Sicily 1443
- sicily 1443
- 1443 Printer Queue
- sicily 1443 队列基本操作
- sicily 1443
- sicily 1242. Suit Distribution
- sicily 1082. MANAGER
- sicily 1172. Queens, Knights and Pawns