有n個作業(1<=n<=1000),每個作業都有自己的ddl與平時分。請安排做作業的順序,拿到最多的平時分。
輸入:共t個測試樣例,每個測試樣例共三行,第一行為作業數量n,第二行n個數表示ddl,第三行n個數表示平時分。
對ddl進行降序排序。從最後一天往前,給每一天安排要寫的作業。列舉到第i天時,將所有ddl=i的作業加入大根堆,然後從大根堆裡選出平時分最大的作業安排在當天。
一道貪心題,應想到該o(nlogn)的演算法。
大根堆使用了priority_queue,要求大根堆用到的排序cmp應新在乙個struct裡過載(),而且大根堆對應a
#include
#include
#include
#include
using
namespace std;
struct homework
;struct cmp //大根堆用到的排序};
bool
cmp1
(const homework&a,
const homework&b)
//ddl排序
intmain()
//選擇分數最大的作業if(
!q.empty()
)}//總降低分數
int ans=0;
for(
int i=
0; i) ans+
=hw[i]
.score;
ans=ans-sum;
cout
(!q.
empty()
) q.
pop();
delete
hw;}}
A DDL 的恐懼 Week4作業)
zjm 有 n 個作業,每個作業都有自己的 ddl,如果 zjm 沒有在 ddl 前做完這個作業,那麼老師會扣掉這個作業的全部平時分。所以 zjm 想知道如何安排做作業的順序,才能盡可能少扣一點分。請你幫幫他吧!input輸入包含t個測試用例。輸入的第一行是單個整數t,為測試用例的數量。每個測試用例...
程式設計 Week4 作業
題意 zjm 有 n 個作業,每個作業都有自己的 ddl,如果 zjm 沒有在 ddl 前做完這個作業,那麼老師會扣掉這個作業的全部平時分。所以 zjm 想知道如何安排做作業的順序,才能盡可能少扣一點分。請你幫幫他吧!input 輸入包含t個測試用例。輸入的第一行是單個整數t,為測試用例的數量。每個...
WEEK4 作業 C TT 的神秘禮物
tt 是一位重度愛貓人士,每日沉溺於 b 站上的貓咪頻道。有一天,tt 的好友 zjm 決定交給 tt 乙個難題,如果 tt 能夠解決這個難題,zjm 就會買乙隻可愛貓咪送給 tt。任務內容是,給定乙個 n 個數的陣列 cat i 並用這個陣列生成乙個新陣列 ans i 新陣列定義為對於任意的 i,...