HDU 2570 迷瘴

贪心基础题。

每种药水的体积是相同的,那么影响浓度的只能是每种药水的浓度,属于集装箱问题

将药水浓度从小到大排列,然后依次相加求平均值,直到平均值大于所给浓度限制。

const int N=110;
int a[N];
int n,v,w;

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>n>>v>>w;

        for(int i=0;i<n;i++) cin>>a[i];

        sort(a,a+n);

        int sum=0,cnt=0;
        double res=0;
        for(int i=0;i<n;i++)
        {
            if((res*i+a[i])/(i+1) > w)
                break;
            else
            {
                res=(res*i+a[i])/(i+1);
                sum+=v;
            }
        }

        printf("%d %.2f\n",sum,res/100);
    }
    //system("pause");
    return 0;
}
posted @ 2021-02-04 00:27  Dazzling!  阅读(39)  评论(0编辑  收藏  举报