贪心练习——肥鼠的交易

这篇博客介绍了如何使用贪心算法解决部分背包问题,具体场景是一只老鼠用有限的猫粮与多只猫进行交易,以获取最多的鼠粮。通过读取每只猫的交换条件,计算每单位猫粮可换取的鼠粮比例,并按比例大小进行优先选择,从而实现最大收益。文章给出了详细的算法实现和测试样例,结果精确到小数点后三位。
摘要由CSDN通过智能技术生成

题目描述:这是属于部分背包问题,一老鼠有M斤猫粮,要拿去和猫交换鼠粮,不同的猫咪兑换标准不一样,求老鼠用自己的猫粮如何能尽可能的换到更多鼠粮?输入数据包括多组样例,第一行是两个整数,M和N,M代表鼠拥有的猫粮有多少斤,N表示有N只猫同意交换。若N==M==-1,结束输入。接下来输入N组数据,每组数据包括两个整数,j和f 。代表猫愿意用f斤猫粮换j斤鼠粮。结果保留小数点三位。

测试样例:

输入:

5 3

7 2

4 3

5 2

20 3

25 18

24 15

15 10

-1 -1

输出:

13.333

31.500

代码实现:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int j[9999],f[9999];
    double ave[9999];
    int i,m,n,k,tem;
    double leftm,sum,largeave;
    while(1){
             scanf("%d %d",&m,&n);
             if(m==-1&&n==-1) break;
             sum=0;
             leftm=m;
             for(i=0;i<n;i&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值