hdu 1009 貪心演算法

2021-08-21 04:37:35 字數 910 閱讀 6900

老鼠準備了m磅的貓糧準備和守鼠糧的貓交換

貓守著n個倉庫,其中存放著不同數量的鼠糧,不同的倉庫交換其中的鼠糧所需要的貓糧是不一樣的,所以每個倉庫有兩個資料  1 鼠糧的重量  2  換取這些鼠糧所需要的貓糧。

例如  第乙個倉庫  18  4  就表明老鼠用4磅的貓糧可換取18磅的鼠糧。但是如果老鼠沒有4磅的貓糧,那它能支付所需貓糧的幾分之幾就可以得到相應鼠糧的幾分之幾,例如現在老鼠只有2磅貓糧,那麼他能換的到第乙個倉庫中的9磅鼠糧。

現在有n個這樣不同的倉庫,老鼠要你幫它計算用它所有的貓糧可以換到最大數量的鼠糧是多少?

先用兩個陣列存放倉庫中鼠糧的重量,和所需的貓糧。a[i] b[i];

再用乙個陣列c[i]來存放每個倉庫對應的單位貓糧可以換多少鼠糧。

再以c[i]為標準對 a[i] b[i]c[i]進行排序,得到乙個遞減序列

然後價效比最高的倉庫就在最前面,依次遞減。

逐個換取,直到所有的貓糧換完為止,所換得到的鼠糧即所能換到的最多的鼠糧。

**:

#include#include/*double a[100000000];    使用固定的陣列會 run time error 

double b[100000000];

double c[100000000];*/

int main ()

else

} printf("%.3lf\n",sum);

sum=0;

} return 0;

}

HDU 1009 (貪心問題)

includeusing namespace std const int maxn 1000 5 double best v maxn int j maxn f maxn int e maxn bool cmp int i,int j int main sort e,e n,cmp double s...

HDU 1009 需要細心的題

注意比較兩個 綠色的部分,wa中先算出價效比w再通過w n算出整個物體的價值。會有一定的誤差 所以ac中整個物體的價值是單存的。wa include include include include define maxn 1000 10 using namespace std struct node...

HDU2037貪心演算法

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