商品有保質期和價值,要在保質期內把商品賣出才有收入,每天只能賣一件,問產品的的最大利益是多少
這道題目,我們很容易發現是有乙個貪心策略,也就是對於 t 天,我們需要在保證不賣出過期商品的前提下,賣出利潤前t大的商品.所以呢,我們可以把商品按照保質時間排序,然後建立乙個小根堆,對於每乙個數而言,如果說它的過期時間大於當前小根堆的個數,那麼我們可以直接將這個貨物的價值加入進來,如果說當前過期時間正好等於這個小根堆堆內的個數,那麼我們就需要對比一下,如果說這個貨物的價值,是高於小根堆的堆頂的話,那麼我們就將小根堆堆頂彈出,然後壓入我們這個新貨物,因為新貨物明顯是更加優於堆頂的老貨物的
m 行n列的乙個數矩陣,每行抽乙個數,可以同列,那麼有n*m種組合,在這些組合中,找出和最小的n個組合
直接乙個i指標指向a陣列將b陣列直接全部放到堆中然後取出,更新堆中資料
乙個pair即可勝任配合小根堆**極其簡潔。
#include
using
namespace std;
typedef
long
long ll;
const
int maxn=
1e6+10;
typedef pair<
int,
int> pii;
int n,m,t;
int a[maxn]
,b[maxn]
,c[maxn]
;void
merge()
);int cnt =1;
while
(cnt<=n));
}for
(int i=
1;i<=n;i++
) a[i]
= c[i];}
intmain()
sort
(a+1
,a+1
+n);
m--;while
(m--
)for
(int i=
1;i<=n;i++
) cout<
<<
" ";
cout<
}}
AcWing 145 超市 貪心
有n個商品,商品有 和過期時間,在過期時間之前才可以賣出,每天只能賣乙個。求最大利潤。假如直接對過期時間排序然後貪心會wa。事實上先把所有物品按過期時間排序,把商品的 放進小頂堆裡面,檢測到乙個商品的過期時間 當前堆的大小時,說明現在的時間不夠 所有的商品,就把 最小的丟掉。為什麼這樣的對的呢?每次...
14 5繼承與組合
程式的版權和版本宣告部分 檔名稱 a.cpp 作 者 孔雲 完成日期 2014年5月29日 版 本 號 v1.0 輸入描述 num,name,year,month,day 和修改後的year,month,day 問題描述 1 birthdate 生日類 含有 year,month,day 等資料成員...
1 4 5 收集trace日誌
trace日誌有助於發現故障的詳細資訊,確認問題原因 影響範圍 故障現象。前提條件 alert日誌提及到的一些trace日誌和incident trace檔案,要一併收集。操作步驟 步驟 1 以oracle使用者登入。步驟 2 根據alert日誌中提示所涉及的trace日誌檔案,收集trace日誌。...