zoukankan      html  css  js  c++  java
  • 悼念512汶川大地震遇难同胞——老人是真饿了

    对于幸存的灾民来说,最急待解决的显然是温饱问题,救灾部队一边在组织人员全力打通交通,一边在组织采购粮食。现在假设下拨了一定数量的救灾经费要去市场采购大米(散装)。如果市场有m种大米,各种大米的单价和重量已知,请问,为了满足更多灾民的需求,最多能采购多少重量的大米呢?
    Input
    输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(0<n<=1000,0<m<=1000),分别表示经费的金额和大米的种类,然后是m行数据,每行包含2个整数p和h(1<=p<=25,1<=h<=100),分别表示单价和对应大米的重量。
    Output
    对于每组测试数据,请输出能够购买大米的最多重量(你可以假设经费买不光所有的大米)。
    每个实例的输出占一行,保留2位小数。
    SampleInput
    1
    7 2
    3 3
    4 4
    SampleOutput
    2.33
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<algorithm>
     4 using namespace std;
     5 struct mi
     6 {
     7        int dan;
     8        int liang;
     9 }s[1005];
    10 
    11 int cmp(mi a,mi b)
    12 {
    13     return a.dan<b.dan;
    14 }
    15 
    16 int main()
    17 {
    18     int c,n,m,i,p,h;
    19     double x;
    20     scanf("%d",&c);
    21     while(c--)
    22     {
    23         scanf("%d%d",&n,&m);
    24         for(i=0;i<m;i++)
    25         {
    26             scanf("%d%d",&s[i].dan,&s[i].liang);
    27         }
    28         sort(s,s+m,cmp);
    29         int sum=0;         //sum为所花的钱数,n为总钱数,x为购买的数量
    30         x=0.0;
    31         for(i=0;i<m;i++)
    32         {
    33             if(sum+s[i].dan*s[i].liang>n)  { x+=(double)(n-sum)/s[i].dan;  break;}       //强制类型转化(double)
    34            else 
    35            {
    36               sum+=s[i].dan*s[i].liang;
    37               x+=(double)s[i].liang;   //强制类型转换 是非常有必要的,否则会损失精度 
    38            }
    39         }
    40         printf("%.2lf
    ",x);
    41     }
    42     return 0;
    43 }
    View Code
  • 相关阅读:
    使用Quartz2D实现时钟动画(二)
    使用Quartz2D实现时钟动画(一)
    排序算法的基本思想和OC代码实现
    OC命名规范及代码注释规范
    OC中Foundation框架的基本对象之数字对象
    iOS并排按钮点击联动效果封装
    iOS图片处理
    个人面试总结
    Objective和Swift,你该选择哪个
    网络开发中socket简介
  • 原文地址:https://www.cnblogs.com/to-creat/p/4938870.html
Copyright © 2011-2022 走看看