hdu 迷瘴

题目链接 hdu 2570
简单的贪心,通过题意你会发现药水的体积是一样的那么影响浓度的只有每种药水的各自浓度,先将药水浓度从小到大排序,然后依次相加再取平均数直到平均数大于所给的浓度限值,然后累加之和乘以体积即所得最大药水体积,平均浓度即为药水混合的浓度
Moy Code:
#include
#include
#include
#include
using namespace std;
int cmp(const void *a, const void *b)  
{  
    return *(int *)a - *(int *)b;  
}
int main()
{
int c, n, v, w;  
    int pi[110];
int sum=0,maxv=1;
cin>>c;
while(c--)
{
sum=0,maxv=0;
memset(pi,0,sizeof(pi));
cin>>n>>v>>w;
for(int i=0;i
cin>>pi[i];
qsort(pi,n,sizeof(pi[0]),cmp);//排序
for(int i=0;i
{
if(1.0*(sum+pi[i])/(maxv+1)<=1.0*w)//取平均数与浓度限制比较
{
sum+=pi[i];
maxv+=1;
}
else break;
}
if(sum == 0)  
            cout<<"0 0.00"<
        else  
        {  
            cout<
        }  
    }  
    return 0;  
}  

你可能感兴趣的:(ACM)