貪心演算法(hdu 4442 hdu 3183)

2021-07-22 01:17:21 字數 755 閱讀 3553

題目:

題意:乙個人去做運動,給定每項運動的初始等待時間和增長等待時間,一等完該運動的等待時間就相當於完成該項運動,即不考慮做運動的時間,求完成所有運動最短要多少時間。

題解:貪心,考慮兩種運動,初始等待時間為a1,a2,增長等待時間為b1,b2,只會發生兩種情況,先做第乙個運動和先做第二個,先做第乙個時間就為a1+a2+a1*b2(也可以寫成a1+a2+a1*a2*(b2/a2)),同理另一種情況為a1+a2+a2*b1(a1+a2+a1*a2*(b1/a1)),所以可以發現,要使總時間最小,即是要考慮bi/ai最小,反過來ai/bi最大,大的放到後面等待即可,小的放到前面先執行,同理可得及時初始時間變化了t*bi也一樣,這定理成立,所以只要考慮最初的ai/bi

**:

#include#include#include#include#include#include#define n 100005

using namespace std;

typedef struct

subject;

subject s[n];

bool compare(subject q,subject w)

else

}if(tail>len&&count1!=num)

else

int start=0;

while(existence[start]=='0'&&start=di) printf("0");

else

{for(int i=start;i

hdu 1009 貪心演算法

老鼠準備了m磅的貓糧準備和守鼠糧的貓交換 貓守著n個倉庫,其中存放著不同數量的鼠糧,不同的倉庫交換其中的鼠糧所需要的貓糧是不一樣的,所以每個倉庫有兩個資料 1 鼠糧的重量 2 換取這些鼠糧所需要的貓糧。例如 第乙個倉庫 18 4 就表明老鼠用4磅的貓糧可換取18磅的鼠糧。但是如果老鼠沒有4磅的貓糧,...

HDU2037貪心演算法

problem description 今年暑假不ac?是的。那你幹什麼呢?看世界盃呀,笨蛋!確實如此,世界盃來了,球迷的節日也來了,估計很多acmer也會拋開電腦,奔向電視了。作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其它的節目,比如新聞聯播 永遠不要忘記關心...

hdu 4221 Greedy 貪心演算法

題意 做任務,每乙個任務i都有花費時間ci,截止時間di,penalty ti di ti為第i個任務的實際完成時間,di為其截至時間,要求所有任務的penalty盡可能的小乙個 思路 貪心演算法 要求截至日期最小的應該最早完成,因為拖得越晚,penalty越大 include include us...