hdu2570 迷瘴

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2570

题目的意思:给你n个体积相同浓度不同的解药,让你配置出浓度不大于w的最大体积的解药:

解题过程:就是一个简单的排序加判断。弄了很久还是没有弄好,后来才发现是qsort应用不当,qsort默认的排序都是从0 开始的, 而我的习惯则是从第一个开始输入,所以一直没找出错误; 排序是按浓度从小到大排学,一旦大于w就跳出循环,有两种特殊情况;最后一个满足和都不满足,加以判断 输出就行;

代码如下

#include <stdio.h>

int main()
{
    int  a[100010];
    int n ;
    scanf("%d",&n);
    while(n--)
    {
        int m , i , j, k, t = 1 ,max = 0;
        scanf("%d",&m);

        for (i = 1;i <= m ; i ++ )
        {    scanf("%d",&a[i]);
             getchar();
        }
        for (i = 1; i<= m ; i ++)
        {
            int    sum1 = 0 ,sum2 =0; 
            double av = a[i]/2.0;
            for (j = 1; j <= m ; j ++)
            {
                if (a[j] >= a[i])
                    sum1 ++;
                if (a[j] >= av)
                    sum2++;
                if (a[j]*1.0/av ==2)
                    sum2++;
            }
            if (sum1> sum2)
                max = sum1  ;
            else max = sum2;


        }
        printf("%d\n",max);
    }

    return 0;

}
原文地址:https://www.cnblogs.com/zyue/p/2826248.html