YT04-貪心課後練習-1004—迷瘴-(6.14日-煙臺大學ACM預備隊解題報告)

kewlgrl發表於2015-06-21

迷瘴

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 13   Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size:  

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

Author

yifenfei

Source

ACM程式設計期末考試081230

144—2  鮑玉博

#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
    int num,i,ge,v,w;
    double pi[100],p,sum;
    cin>>num;
    while(num--)
    {
        cin>>ge>>v>>w;
        for(i=0; i<ge; i++)
            cin>>pi[i];
        sum=0;
        p=0;
        sort(pi,pi+ge);
        for(i=0; i<ge; i++)
        {
            if(pi[0]>w||(sum+pi[i])/(i+1)>w)
                break;
            else
            {
                sum+=pi[i];
                p=sum/(i+1);
            }
        }
        printf("%d %.2f\n",i*v,p/100);
    }
    return 0;
}




相關文章