Week4作業 A DDL的恐懼 貪心

2021-10-03 22:25:22 字數 855 閱讀 5841

有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,...