1. 程式人生 > >Printer Queue列印佇列

Printer Queue列印佇列

The only printer in the computer science students' union is experiencing an extremely heavy workload. Sometimes there are a hundred jobs in the printer queue and you may have to wait for hours to get a single page of output. 

Because some jobs are more important than others, the Hacker General has invented and implemented a simple priority system for the print job queue. Now, each job is assigned a priority between 1 and 9 (with 9 being the highest priority, 
and 1 being the lowest), and the printer operates as follows.

  • The first job J in queue is taken from the queue.
  • If there is some job in the queue with a higher priority than job J, thenmove J to the end of the queue without printing it.
  • Otherwise, print job J (and do not put it back in the queue).

In this way, all those importantmuffin recipes that the Hacker General is printing get printed very quickly. Of course, those annoying term papers that others are printing may have to wait for quite some time to get printed, but that's life. 

Your problem with the new policy is that it has become quite tricky to determine when your print job will actually be completed. You decide to write a program to figure this out. The program will be given the current queue (as a list of priorities) as well as the position of your job in the queue, and must then calculate how long it will take until your job is printed, assuming that no additional jobs will be added to the queue. To simplifymatters, we assume that printing a job always takes exactly one minute, and that adding and removing jobs from the queue is instantaneous.

相關推薦

Printer Queue列印佇列

The only printer in the computer science students' union is experiencing an extremely heavy workload. Sometimes there are a hundred jobs in the printer qu

UVa12100 Printer Queue (列印佇列)

12100  Printer Queue Input    One line with a positive integer :  the number of test cases(at most 100).  Then for each test case:    

5-7 UVA 12100 Printer Queue列印佇列

大致題意: 輸入一定數量的列印任務,並伴隨有優先順序,按優先順序從大到小的順序列印,從隊首(位置為0)開始列印,發現隊後存在一個列印任務的優先順序高於自己,則自己放於隊後,先列印優先順序高的。 整體思路: 不用想,根據題意,存資料(優先順序)用肯定用queue存(當然有很多

uva 12100 Printer Queue(列印佇列)模擬

思路:按照輸入的順序,將每個任務入隊,同時用另一個數組儲存這些優先順序,然後按照從大到小或者從小到大的順序對陣列排序,表示每個執行的先後順序。然後對佇列進行操作,先從佇列頭取出一個元素,判斷是不是和陣

poj 3125 Printer Queue佇列

The only printer in the computer science students' union is experiencing an extremely heavy workload. Sometimes there are a hundred jobs in the printer que

列印佇列(Printer Queue)

Printer Queue Time limit: 3.000 seconds 【分析】        首先記錄所求時間它在佇列中的位置,用一個佇列儲存這些任務的優先順序,同時也建立一個佇列儲存對應

關於“列印佇列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的討論

列印佇列有兩個屬性,一個是優先順序一個是位置,可以寫一個結構體儲存這些資訊再利用queue的特性完成本題 #include<iostream> #include<queue> #include<vector> using namespac

Printer Queue列印佇列)POJ3125

The only printer in the computer science students' union is experiencing an extremely heavy workload. Sometimes there are a hundred jobs in the printer qu

打印隊列 (Printer Queue,ACM/ICPC NWERC 2006,UVA12100)

priority clu names 技術 使用 info 一個 esp 描述 題目描述: 題目思路: 使用一個隊列記錄數字,一個優先隊列記錄優先級,如果相等即可打印; 1 #include <iostream> 2 #include <

queue佇列)的用法與迴圈佇列對照(常用方法)

其實啊,我寫這篇部落格的時候還不知道C++的具體語法(emmmmmm以後肯定會),只是看到人家的程式裡能夠直接呼叫queue省時省力,而我只會一遍又一遍的寫queue的子函式,太費勁。所以呢,出於偷懶的目的,我總結一下偷懶的常用途徑。 佇列的定義 佇列是一種容器

程序(四):程序間通訊 —— Queue佇列)和Pipe(管道)

目錄 程序間通訊 佇列  概念介紹 方法介紹 程式碼例項 生產者消費者模型 JoinableQueue([maxsize])  管道(瞭解) 程序間通訊 IPC(Inter-Process Communication) 佇列&nbs

執行緒(三):Lock(互斥鎖)、RLock( 遞迴鎖)、Semaphore(訊號量)、Event(事件)、Condition(條件)、Timer(定時器)、queue佇列

目錄 一、鎖 1)同步鎖 2)死鎖與遞迴鎖 二、訊號量 三、事件 四、條件 五、定時器 六、執行緒佇列 一、鎖 1)同步鎖 #同步鎖的引用 from threading import Thread,Lock import os,time def wor

Queue訊息佇列和Pool程序池

目錄 Queue訊息佇列 Queue常見方法 Pool程序池 Queue訊息佇列 在python中,多個程序之間是無法共享全域性變數的。但有時候我們又必須使用同一些資料。

資料結構——佇列Queue(陣列佇列和迴圈佇列)

什麼是佇列? 佇列是一種線性的資料結構【線性資料結構:陣列、棧、佇列】 相比陣列,佇列對應的資料操作是陣列的子集。 只能從一端(隊尾)新增元素,只能從另一端(隊首)取出元素。 陣列佇列 程式碼實現 Array陣列類 package cn.itcats.que

STL系列之五 priority queue 優先順序佇列

priority_queue 優先順序佇列是一個擁有權值概念的單向佇列queue,在這個佇列中,所有元素是按優先順序排列的(也可以認為queue是個按進入佇列的先後做為優先順序的優先順序佇列——先進入佇列的元素優先權要高於後進入佇列的元素)。在計算機作業系統中,優先順序佇列的使用是相當頻繁的,進執行緒排

STL系列之三 queue 單向佇列

//VS2008中 queue的定義 MoreWindows整理(http://blog.csdn.net/MoreWindows)template<class _Ty, class _Container = deque<_Ty> >class queue{ // FIFO queue

Team Queue佇列陣列與map搜尋)

1.題面: 題意 有t個團隊的人正在排一個長隊。每次新來一個人時,如果他有隊友在排隊,那麼這個新人會插隊到最後一個隊友身後。如果沒有任何一個隊友排隊,則他會排到長隊的隊尾。輸入每個團隊中所有隊員的編號,要求支援如下3種指令(前兩種指令可以穿插進行)。 ENQUEUE:編號為X的人進入長隊。

set(集)、list(列表)、map(對映)和Queue佇列

(1) Set 集(set)是最簡單的一種集合,它的物件不按特定方式排序,只是簡單的把物件加入集合中,就像往口袋裡放東西。對集中成員的訪問和操作是通過集中物件的引用進行的,所以集中不能有重複物件。我們知道數學上的集合也是Set這個,集合裡面一定是沒有重複的元素的。 (2)List 列表(List)的主要

java queue佇列的使用示例及常用方法示例和比較

package com.yanshu.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List;

C++ 中queue佇列)的用法

#include <iostream> #include <queue> #include <assert.h> 呼叫的時候要有標頭檔案: #include<stdlib.h>| | #inc