码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 2187 悼念512汶川大地震遇难同胞——老人是真饿了

时间:2016-07-28 16:25:07      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:

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

题目简问:

技术分享

解题思路:

已知给出了 总钱数 和 一共的种类

1. 对给出的大米,按照价格进行升序,即让最便宜的大米排在最上面

2. 如果当前的 大米单价*数量>总钱数,则 一共能买 sum+= 总钱数/单价 

   否则 sum+=当前大米的总重量,同时总钱数-=大米单价*数量。

3.输出 sum 即可,注意格式。

AC 代码:

#include <stdio.h>
#include <stdlib.h>
struct N
{
    int dj,zl;
};
int cmp(const void *a,const void *b)
{
    N *a1=(N *)a;
    N *b1=(N *)b;
    return a1->dj - b1->dj;
}
int main(void)
{
    int c,tp,i;
    double mo,sum;
    struct N n[1010];
    scanf("%d",&c);
    while(c--)
    {
        sum=0;
        scanf("%lf%d",&mo,&tp);
        for(i=0; i<tp; i++)
        {
            scanf("%d%d",&n[i].dj,&n[i].zl);
        }
        qsort(n,tp,sizeof(n[0]),cmp);
        for(i=0; i<tp; i++)
        {
            if((n[i].dj*n[i].zl)>=mo)
            {
                sum+=mo/(n[i].dj);
                break;
            }
            else
            {
                mo-=(n[i].dj*n[i].zl);
                sum+=n[i].zl;
            }
        }
        printf("%.2f\n",sum);
    }
    return 0;
}

  

hdu 2187 悼念512汶川大地震遇难同胞——老人是真饿了

标签:

原文地址:http://www.cnblogs.com/A--Q/p/5715084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!