关闭

FatMouse'trade

86人阅读 评论(0) 收藏 举报
分类:

贪心算法小应用~




代码:

#include <iostream>
#include<algorithm>
using namespace std;

struct trade{
    double javaBean;
    double catFood;
    double value;
    bool operator <(const trade &a)const{
                return value>a.value;
    }
}t[1001];

int main()
{
    double m;
    int n;
    while(cin>>m>>n){
        if(m==-1&&n==-1)
                break;
        for(int i=0;i<n;i++){
                cin>>t[i].javaBean>>t[i].catFood;
                t[i].value=t[i].javaBean/t[i].catFood;
        }
        sort(t,t+n);
        double s=0;
        int index=0;
        while(m>0&&index<n){
                if(m>t[index].catFood){
                    s+=t[index].javaBean;
                    m-=t[index].catFood;
                }
                else{
                    s+=m*t[index].value;
                    m=0;
                }
                index++;
        }

        cout<<s<<endl;
    }
    return 0;
}
/*
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
*/


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4469次
    • 积分:524
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论