迷瘴
time limit: 1000 ms memory limit: 65536 kib
submit statistic discuss
problem description
通過懸崖的yifenfei,又面臨著幽谷的考驗——
幽谷周圍瘴氣瀰漫,靜的可怕,隱約可見地上堆滿了骷髏。由於此處長年不見天日,導致空氣中布滿了毒素,一旦吸入體內,便會全身潰爛而死。
幸好yifenfei早有防備,提前備好了解藥材料(各種濃度的萬能藥水)。現在只需按照配置成不同比例的濃度。
現已知yifenfei隨身攜帶有n種濃度的萬能藥水,體積v都相同,濃度則分別為pi%。並且知道,針對當時幽谷的瘴氣情況,只需選擇部分或者全部的萬能藥水,然後配置出濃度不大於 w%的藥水即可解毒。
現在的問題是:如何配置此藥,能得到最大體積的當前可用的解藥呢?
特別說明:由於幽谷內裝置的限制,只允許把一種已有的藥全部混入另一種之中(即:不能出現對一種藥只取它的一部分這樣的操作)。
input
輸入資料的第一行是乙個整數c,表示測試資料的組數;
每組測試資料報含2行,首先一行給出三個正整數n,v,w(1<=n,v,w<=100);
接著一行是n個整數,表示n種藥水的濃度pi%(1<=pi<=100)。
output
對於每組測試資料,請輸出乙個整數和乙個浮點數;
其中整數表示解藥的最大體積,浮點數表示解藥的濃度(四捨五入保留2位小數);
如果不能配出滿足要求的的解藥,則請輸出0 0.00。
sample input
3 1 100 10
100
2 100 24
20 30
3 100 24
20 20 30
sample output
0 0.00
100 0.20
300 0.23
hint
#include
#include
void paixu(int a,int n)}}
}int main()
paixu(a,n);
nong=0;tiji=0;
for(i=0;iif(v*(nong+a[i])/(tiji+v)<=w)
}if(tiji==0)
else
}return
0;}
think:
根據題目要求,多種藥水混合後的濃度=(濃度1*體積1+濃度2*體積2+……)/(體積和),所以列出了限制條件,最後輸出的時候其實是濃度*v/總的體積/v,所以化簡之後就是輸出的格式,為什麼還要在除以乙個v那,因為示例中的濃度給的就是a%中a,我們最後輸出的時候沒有帶%號,所以就要在除以他的體積
hdu 迷瘴 貪心
其實就是一道簡單貪心題,但第一次用分數做wa了,改用整數就對,也許是自己不夠細心,呵呵 如果是不夠細心的人,建議還是用整數吧 1 include 2 include 3 include 4using namespace std 5int cmp const void a,const void b 6...
HDU 2570 迷瘴 貪心
description 通過懸崖的yifenfei,又面臨著幽谷的考驗 幽谷周圍瘴氣瀰漫,靜的可怕,隱約可見地上堆滿了骷髏。由於此處長年不見天日,導致空氣中布滿了毒素,一旦吸入體內,便會全身潰爛而死。幸好yifenfei早有防備,提前備好了解藥材料 各種濃度的萬能藥水 現在只需按照配置成不同比例的濃...
HDU 2570 迷瘴 貪心
傳送門 hdu 2570 迷瘴 分析 注意 如果百分號小數化去判斷 就有精度問題 p 0.000001 w 貪心策略 先把濃度按從小到大的順序排列,再乙個乙個的 貪 直至貪到所配濃度大於題目中所給的濃度。如下 include include using namespace std int main ...