一家超市有一批**商品。在截止日期dx前銷售的每種產品x∈prod都能獲得利潤px,從銷售開始的那一刻起,該產品以時間單位的整數計量。每種產品的銷售時間正好是乙個單位。銷售計畫是產品sell≤prod的乙個有序子集,根據sell的排序,每個產品x∈sell的銷售在截止日期dx之前或dx到期時完成。是銷售利潤表∈銷售利潤表。最優銷售計畫是乙個利潤最大的計畫。
例如,考慮產品prod=,其中(pa,da)=(50,2),(pb,db)=(10,1),(pc,dc)=(20,2),(pd,dd)=(30,1)。表1列出了可能的銷售時間表。例如,計畫sell=顯示產品d的銷售從時間0開始到時間1結束,而產品a的銷售從時間1開始到時間2結束。每種產品都在截止日期前售出。銷售是最佳計畫,其利潤為80。
貪心+優先佇列:顯然在第t天的時候 要在不變質的情況下賣掉利潤前t大的,用優先佇列維護就行。具體的就是 ,先按過期時間從先到後,再按利潤從大到小排序,優先佇列按利潤從小到大排,然後一一枚舉。 對於每乙個商品 如果商品過期天數等於佇列的大小,則判斷隊頭的利潤和該商品的利潤大小關係,如果該商品的利潤大於隊頭的利潤 ,則隊頭出隊(因為有利潤更大的滿足條件的商品),該商品入隊。 當該商品過期天數大於佇列的大小時候,該商品在此時顯然滿足條件,可以直接入隊。
#include
#include
#include
#include
using
namespace std;
const
int maxn =
1e4+
100;
inline
intread()
while
(isdigit
(ch)
) x =
(x <<3)
+(x <<1)
+(ch ^48)
,ch=
getchar()
;return w ?
-x : x;
}struct node
}t[maxn]
;bool
cmp(node x,node y)
intmain()
sort
(t +
1, t +
1+ n, cmp)
;for
(int i =
1; i <= n; i++)if
(t[i]
.d > q.
size()
)///當前商品天數大於維護的佇列,直接入隊(在當前狀態下它肯定可選)
q.push
(t[i]);
else
if(t[i]
.d == q.
size()
)///當前商品的天數等於維護的佇列,看隊頭是不是利潤更小
if(t[i]
.p > q.
top(
).p)
q.pop(
), q.
push
(t[i]);
int ans =0;
while
(!q.
empty()
) ans +
= q.
top(
).p, q.
pop();
printf
("%d\n"
, ans);}
return0;
}
泰克測試測量產品
示波器 泰克 全球示波器銷量最大的公司,80 工程師的首選品牌。products logic analyzers 邏輯分析儀 用於實時數字系統分析的突破性邏輯分析儀解決方案。protocol analyzer 協議分析儀 提供從物理層到事務層 涵蓋所有協議層的pci express新型驗證方法。10...
測試方案 泰克功率器件IGBT測試方案簡介
igbt簡介 igbt 絕緣柵雙極性電晶體 是常見的功率,期間經常使用在強電流高電壓的場景中,如電動汽車 變電站等。器件結構由mosfet及bgt組合而成,兼具了高輸入阻抗及低導通壓降的優點,igbt是電力電子裝置的 cpu 被國家列為重點研究物件。igbt測試難點 1 由於igbt是多埠器件,所以...
泰克示波器接地 儀器 示波器的使用以及基本原理
示波器是我們的眼睛 電子工程師 本文以泰克tds2000系列示波器為例 1 數字儲存示波器 digital storage oscilloscope 名詞解釋 1.數字是相對於模擬而言,將連續的模擬訊號轉換為離散的數碼訊號 2.儲存是表徵ad採集後的資料可以進行儲存 有儲存深度一說 3.示波器的根本...