zoukankan      html  css  js  c++  java
  • hdu 1009:FatMouse' Trade(贪心)

    FatMouse' Trade

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 36632    Accepted Submission(s): 12064


    Problem Description
    FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
    The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
     
    Input
    The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1's. All integers are not greater than 1000.
     
    Output
    For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
     
    Sample Input
    5 3
    7 2
    4 3
    5 2
    20 3
    25 18
    24 15
    15 10
    -1 -1
     
    Sample Output
    13.333
    31.500
     
    Author
    CHEN, Yue
     
    Source
     
    Recommend
    JGShining   |   We have carefully selected several similar problems for you:  1050 1051 1052 1007 1049 
     
     
    水题,读不懂题意是个坑,英语是个大问题啊……
     
     1 #include <iostream>
     2 #include <iomanip>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int N,M;
     8     while(cin>>M>>N,M!=-1 || N!=-1){
     9         int J[1001],F[1001];
    10         for(int i=1;i<=N;i++){
    11             cin>>J[i]>>F[i];
    12         }
    13         //ÅÅÐò
    14         for(int i=1;i<=N-1;i++)
    15             for(int j=1;j<=N-i;j++){
    16                 if((double)J[j]/F[j]<(double)J[j+1]/F[j+1]){
    17                     int t;
    18                     t=F[j];F[j]=F[j+1];F[j+1]=t;
    19                     t=J[j];J[j]=J[j+1];J[j+1]=t;
    20                 }
    21             }
    22         int fs=1,fe=1;
    23 
    24         //¼ÆËã
    25         double res=0;
    26         for(int i=1;i<=N;i++){
    27             if(M-F[i]>=0){
    28                 res+=J[i];
    29                 M-=F[i];
    30             }
    31             else{
    32                 res+=M/(double)F[i]*(double)J[i];
    33                 break;
    34             }
    35         }
    36         cout<<setiosflags(ios::fixed);
    37         cout<<setprecision(3);
    38         cout<<res<<endl;
    39     }
    40     return 0;
    41 }

     Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    准备开始学习XNA
    徐家骏:华为十年感悟
    memcached详解
    sql时间
    Sql server log file 缩小和删除
    看高手都是运用的灵活自如,打算从今天开始学习他!
    什么是内存对齐
    VS 2008 远程调试 与asp.net
    XNA入门的代码注释
    HTML的段落与文字
  • 原文地址:https://www.cnblogs.com/yym2013/p/3500540.html
Copyright © 2011-2022 走看看