一群牛來排隊吃草,每頭牛有到達時間,吃草時間 和 等級,越前面輸入的牛等級越高,在共同等待時擁有更高的優先順序
求奶牛的最長等待時間
將牛按到達時間排序,維護每次吃草結束的時間 和 等待佇列
每次吃草結束後,將到達時間 早於 當前吃草結束時間的牛 放入優先佇列,優先佇列按等級排序,每當有牛吃完草 且 隊伍不為空時,佇列中的第乙個元素即為等級最高的在等待中的牛,讓這頭牛進去吃草,同時計算這頭牛的等到時間 和 吃完草的結束時間,迴圈,直到全部牛吃完,得到最大等待時間
隊列為空時則直接補上下乙個到達的牛
#include
using namespace std;
struct node
//用於到達時間排序
bool friend operator >
(const node &a,
const node &b)
//用於等級排序
} temp_cow;
vectorcow;
int n;
intmain()
sort
(cow.
begin()
,cow.
end())
; priority_queue
, greater
> que;
int k=0;
int time=cow[k]
.s+cow[k]
.e;//維護時間
++k;
int max_wait=0;
while
( kempty()
)else
break;}
if(!que.
empty()
)else
}printf
("%d\n"
,max_wait)
;return0;
}
再次學習priority queue優先佇列
這周四導師的演算法課就要考試,真心感覺自己沒學好,在看貪心策略的時候提到了哈夫曼編碼,而哈夫曼編碼是借助優先佇列實現的。對於優先佇列並不熟悉的我,理所當然的應該回顧複習乙個priority queue,也就是優先佇列!下面主要是根據 c 標準程式庫 中的內容整理而得到。class priority ...
合併果實 priority queue(優先佇列)
today is a good day!蒟蒻筆記再度更新之 c 優先佇列 priority queue 優先佇列跟普通的佇列唯一的差別呢實際上就在於,他能夠根據所給的某種型別的優先順序規則在訪問之前進行一定的排序工作。具體用途的話 公升序佇列 priority queue greater int q...
隊,棧,優先佇列的操作
隊是先進先出,棧是先進後出,這一點大家應該清楚,明白這一點就可以正確的選擇他們的運用了!使用標準庫的佇列 include 標頭檔案 queueq 定義乙個 int 型的佇列 q.empty 如果隊列為空返回true,否則返回false q.size 返回佇列中元素的個數 q.pop 刪除佇列首元素但...