給定n個優先順序列印佇列,然後從0開始編號到n-1。出隊乙個元素,如果他是佇列中優先順序最高的,列印(耗時一分鐘),否則放到隊尾(不耗時)。給定乙個m,求位置m的檔案列印的時間。
用乙個priority_queue去尋找優先順序最高的元素,然後用乙個deque>去模擬佇列 pair第乙個元素是優先順序, 第二個是序號。 如果第一元素跟優先順序相同,就出隊,否則出隊後插入隊尾。
(其實這題用queue也可以,不過deque好處是可以在隊頭插入,而且速度不慢)
1 #include 2using
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...