程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [hdoj2570]迷瘴

[hdoj2570]迷瘴

編輯:C++入門知識

思路:

 題意說只要配出的藥水濃度低於給定值即可解毒,並要求求能解毒的藥水的最大體積

 我覺得這是個貪心題

 因為體積相同,故將濃度從小到大排序,將藥水依次倒入已摻得的藥水中,只要濃度不超,就倒進去即可。

[cpp] 
#include<iostream> 
using namespace std; 
 
int cmp(const void*a,const void *b){ 
    return *(int*)a-*(int*)b; 

 
void main(){ 
    int c,n,v,w; 
    int a[101]; 
    cin>>c; 
    while(c--){ 
       int vv=0,sum=0; 
       cin>>n>>v>>w; 
       memset(a,0,sizeof(a)); 
       for(int i=0;i<n;i++) 
           cin>>a[i]; 
       qsort(a,0,sizeof(a),cmp); 
       for(i=0;i<n;i++){ 
           if(1.0*(sum+a[i])/(vv+1)<=w*1.0) 
               sum+=a[i],vv+=1; 
           else 
               break; 
       } 
       if(sum==0) 
           printf("0 0.00\n"); 
       else 
           printf("%d %.2f\n",v*vv,0.01*sum/vv); 
    } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved