基础入门之贪心算法

本文介绍了贪心算法的基础知识,通过两个实例【例2.11】和【例2.12】进行深入讲解。在【例2.11】中,目标是用有限的钱购买最多的食物,关键在于找到性价比最高的房间。而在【例2.12】中,贪心策略是选择结束时间最早的节目以观看最多的完整节目。这两个例子展示了贪心算法如何在实际问题中寻找局部最优解来逼近全局最优。
摘要由CSDN通过智能技术生成

学习材料:《2013年王道论坛计算机考研机试指南》

文中涉及对学习材料的摘录,以及自己的理解


1 题目【例2.11】:


1.1 题目分析:

总共拥有M pounds钱,去买N个room的X吨food;

第i个房间有J[i]吨food,对应所需F[i] pounds的钱;

如果剩余的钱不够买一个房间的全部食物,可以只买部分,那么  J[i] * a%吨食物 需要 F[i] * a% pounds的钱

目标——用有限的M pouds钱买尽可能多的食物

1.2 解题思路:

本质:在剩余储藏食物的房间中找性价比最高的房间 , 即 J[i] / F[i]最高的, 那么就应将N个房间按食物量与价格的性价比降序排列;

限制条件:依次购买按性价比降序排列的房间中的食物,直到钱花完或者购买完N个房间的食物;

注意:当最后剩余的钱不够买整个房间的食物,就按题中所述百分比购买部分

1.3 代码:


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值