• 迷瘴


     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 void quick_sort(int s[],int l,int r)
     4 {
     5     if(l<r)
     6     {
     7         int i=l,j=r, x=s[l];
     8         while (i<j)
     9         {
    10             while(i<j&&s[j]>=x)
    11                 j--;
    12             if(i<j)
    13                 s[i++]=s[j];
    14             while(i<j&&s[i]<x)
    15                 i++;
    16             if(i<j)
    17                 s[j--]=s[i];
    18         }
    19         s[i]=x;
    20         quick_sort(s,l,i-1);
    21         quick_sort(s,i+1,r);
    22     }
    23 }
    24 
    25 int main()
    26 {
    27     int T,n,V,W,i;
    28     int num[10000];
    29     double sign,sum;
    30     scanf("%d",&T);
    31     while(T--)
    32     {
    33         scanf("%d%d%d",&n,&V,&W);
    34         for(i=0;i<n;i++)
    35         {scanf("%d",&num[i]);}
    36         quick_sort(num,0,n-1);
    37         for(i=0,sign=0;i<n;i++)
    38         {
    39             sign+=num[i];
    40             if(sign<=W*(i+1))continue;
    41             else if(sign==0&&i==0)
    42             {sign=0;break;}
    43             else
    44             {sign-=num[i];break;}
    45         }
    46         if(sign!=0)
    47             {
    48                 sign=(sign/i)*0.01;
    49             }
    50         printf("%d %0.2lf
    ",i*V,sign);
    51     }
    52 }
    View Code

    迷瘴

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

    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
    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    Delphi 之Copyrect的使用
    Delphi GDI对象之脱屏位图(Offscreen Bitmaps),也叫内存位图
    1067. Sort with Swap(0,*) (25)【贪心】——PAT (Advanced Level) Practise
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    每一个JavaScript开发者都应该知道的10道面试题
    【HDOJ 5407】 CRB and Candies (大犇推导
    Wireshark默认不抓取本地包的解决方式
    Android LaunchMode案例篇
    使用ViewPager实现广告滑动效果
    剑指offer面试题26-复杂链表的复制
  • 原文地址:https://www.cnblogs.com/Wurq/p/3750322.html
Copyright © 2020-2023  润新知