UVA 12100 列印佇列 STL deque

2022-08-17 02:15:16 字數 599 閱讀 1970

給定n個優先順序列印佇列,然後從0開始編號到n-1。出隊乙個元素,如果他是佇列中優先順序最高的,列印(耗時一分鐘),否則放到隊尾(不耗時)。給定乙個m,求位置m的檔案列印的時間。

用乙個priority_queue去尋找優先順序最高的元素,然後用乙個deque>去模擬佇列 pair第乙個元素是優先順序, 第二個是序號。 如果第一元素跟優先順序相同,就出隊,否則出隊後插入隊尾。

(其實這題用queue也可以,不過deque好處是可以在隊頭插入,而且速度不慢)

1 #include 2

using

namespace

std;

3 typedef pairpii;

4int

n, m;

5int

main()627

int res = 0;28

int print = 0;29

while(1)30

39if(dq.front().second ==m)

4044

else

4549

}50 cout << res << "\n"

;51}52

53 }

UVA12100 列印佇列

題目大意 現在有乙個列印佇列,裡面的任務是無序的,每個任務有乙個權值,印表機會從第乙個任務開始執行,如果當前任務的權值是佇列中最大的,那麼就列印,否則就將該任務放置到隊末。每次列印消耗一定的時間,求該序列中的任務分別在什麼時候被列印。這題開乙個優先佇列乙個普通佇列,佇列裡的元素出隊,如果出隊元素和優...

列印佇列 UVA 12100

一開始的思路是用兩個佇列,乙個優先佇列,乙個普通的佇列,普通佇列的首元素與優先佇列的首元素比較,元素不相同的話將普通佇列的首元素移至最後,時間不消耗 如果相同,列印當前內容,時間 1分鐘,同時移除首元素。結果證明不可行,因為優先佇列中,優先順序相同的情況下,不是按照輸入的先後順序排列的。下面是 st...

uva481 列印LIS路徑

對於lis的求解問題,我採用的是二分 貪心進行求解,然後對於列印路徑採用乙個f陣列記錄,f i 代表lis序列中的第i個元素的前面的乙個元素的位置 include include include include using namespace std const int n 1e5 5 int va...