第六次 hdu 1789 貪心

2021-09-10 08:27:11 字數 986 閱讀 9862

hdu-1789

題意:ignatius有n項作業要完成。每項作業都ddl,如果不在ddl前完成作業,期末考就會被扣相應的分數。給出測試資料t表示測試數,每個測試以n開始(n為0時結束),接下來一行有n個資料,分別是作業的限期,再有一行也有n個資料,分別是若不完成次作業會在期末時被扣的分數。求出他最佳的作業順序後被扣的最小的分數。(每個作業要寫一天)。

題解:對所扣成績進行排序,扣的分數越多的作業優先安排完成,如果所扣的分數相同時,用ddl從小到大排。

從該作業的ddl往前搜尋,找到一天來完成該作業,然後標記這一天。

用#include的sort函式進行排序

然後用sort(array,array+n,cmp)排序,注意sort對非結構體排序都是公升序!但是對結構體必須要定義cmp,或者在定義結構體的時候過載小於號

注意:cpp裡陣列排序最好不要用char,用string很方便!

排序:

struct f

;bool cmp(f a,f b)

sort(a+1, a + n+1, cmp);//分數排序

完整**:

#include#include#includeusing namespace std;

#define maxn 1005

struct f

;bool cmp(f a,f b)

f a[maxn];

int b[maxn];//標記函式

int main()

for (i = 1; i <= n; i++)

sort(a+1, a + n+1, cmp);//分數排序

int sum = 0;

for (i = 1; i <= n; i++)

}if(!j)//如果沒有哪天有空則j==0,記下扣的分數

sum += a[i].grade;

} cout << sum << endl;

}}

hdu1789 貪心 回溯

hdu1789 鏈結題目傳送 include include include includeusing namespace std define n 10010 int v n t,sum,n,flag struct node bool cmp node a,node b int main if f...

hdu1789(經典貪心)

題意 有t組測試資料,每組測試資料中有n門功課,第一排完成它們的時間限制,第二排是未在限制的時間內完成的要扣除的分數,然後是需要求扣的分數最少。思路 一開始在想著用dp做,結果沒有d出來,於是去看解題報告,發現可以用貪心做,但是我也沒有想到思路.是這樣的,對分數按從大到小排次序,然後列舉限定的時間,...

第六次作業

姓名 陳裕坤 學號 120705213 班級 12電信2班 作業1 總結,到目前為止,c語言基礎知識已介紹完,下一階段重點是指標。請從以下幾個方面小結 1.程式設計重在實踐,多程式設計才會對其理解更深,我是如何學習c語言的?2.程式設計涉及到方方面面知識,就像英語單詞一樣,一開始不可能了解每個c元素...