超市(stl 貪心)

2022-07-22 06:57:10 字數 515 閱讀 7765

鏈結

按照過期時間從小到大排序(兩個元素一組可以用pair,放在 vector裡面,排序)

當前商品的個數 > 過期時間,把利潤最小的替換出去(小根堆)

#include #define int long long

using

namespace

std;

intn;

priority_queue

,greater> heap;//

小根堆signed main()

int res = 0

;

while

(heap.size())

res +=heap.top(), heap.pop();

cout

<< res <

}return0;

}

view code

AcWing 145 超市 貪心

有n個商品,商品有 和過期時間,在過期時間之前才可以賣出,每天只能賣乙個。求最大利潤。假如直接對過期時間排序然後貪心會wa。事實上先把所有物品按過期時間排序,把商品的 放進小頂堆裡面,檢測到乙個商品的過期時間 當前堆的大小時,說明現在的時間不夠 所有的商品,就把 最小的丟掉。為什麼這樣的對的呢?每次...

帶 反悔 的貪心 超市

題面 超市裡有n件商品,每個商品都有利潤p i pi 和過期時間d i d i,每天只能賣一件商品,過期商品 即當天d i 0 di 0 不能再賣。求合理安排每天賣的商品的情況下,可以得到的最大收益是多少。第一眼看過去,呀,我應該先選利潤大的。但是因為選了利潤大的,錯失了一些利潤還行的,而且就算 選...

貪心 STL 鋸木

題目描述 lazychild需要將一根非常長的木棒切成n段,每段的長度分別為l1,l2,ln個長度單位。li i 1,2,n 恰好就是原木棒的長度。我們認為切割時僅在整數點處切且沒有木材損失。lazychild發現,每一次切割花費的體力與該木棒的長度成正比,不妨設切割長度為1的木棒花費1單位體力。l...