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元素...