经典贪心问题之圣诞老人的礼物
目录
题目信息:
题目分析:
题解代码:
题目信息:
注:4指一共有四箱糖果,15指雪橇共能带走的最大重量为15,接下来输出4行,每行两个数据,
第一个数据指这箱糖果的价值,第二个数据指这箱糖果的重量。
题目分析:
这是一道很典型的贪心问题,因为要带走的糖果价值总和最大,且注意可以拆分成散装带走,也就是说当装了整箱糖果后,若剩下的空间不足以再装下一整箱糖果,可以拆分来装,固这题我们首先要求的就是每箱糖果价值与重量的比值,最大的先装,以此类推,到最后装不满一箱时再拆分。
题解代码:
#include<bits/stdc++.h>
using namespace std;
const double eps=1e-6;
struct Candy
{int v; //价值v 重量wint w;bool operator < (const Candy & c) const{return double(v)/w-double(c.v)/c.w > eps; //排序规则:价值重量比大的先装}
}candies[110];
int main()
{int n,w;cin>>n>>w;for(int i=0;i<n;i++) //记录每箱糖果的价值和重量{cin>>candies[i].v>>candies[i].w;}sort(candies,candies+n); //按上面的规则排序int totalW=0;double totalV=0;for(int i=0;i<n;i++){if(totalW + candies[i].w<=w) //若雪橇剩余载重量够装这一整箱{totalW+=candies[i].w;totalV+=candies[i].v;}else //若不够则拆分装{totalV+=candies[i].v*double(w-totalW)/candies[i].w;break;}}printf("%.1f",totalV);return 0;
}
附:样例测试
4 15
100 4
412 8
266 7
591 2
经典贪心问题之圣诞老人的礼物相关推荐
- 贪心算法之圣诞老人的礼物
问题描述 圣诞节来临了,中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走,圣诞老人的寻路雪橇最多只能装下重量W的糖果,请问圣诞老人最多能带 ...
- 基础算法——贪心算法(圣诞老人的礼物)
题目是这样的: 圣诞节来临了,中圣诞老人准备分发糖果现在有多箱不同的糖果, 每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿雪橇最多只能装下重量W的糖果,请问圣诞老人最 ...
- Bailian4110 圣诞老人的礼物-Santa Clau’s Gifts【背包+贪心】
4110:圣诞老人的礼物-Santa Clau's Gifts 总时间限制: 1000ms 内存限制: 65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖 ...
- Poj 圣诞老人的礼物 贪心
圣诞节?快乐^ - ^ POJ 4110 圣诞老人的礼物(贪心) 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合 ...
- 贪心题目——圣诞老人的礼物
例题 圣诞老人的礼物 分发糖果,多箱不同的糖果,每箱有自己的价值和重量,每箱都可以拆分成任意散装组合带走,但是雪橇只能装下W重量的糖果,请问圣诞老人最多能敌啊走多大价值的糖果. 输入: 1⃣️n (箱 ...
- 4110:圣诞老人的礼物-Santa Clau’s Gifts(java)
4110:圣诞老人的礼物-Santa Clau's Gifts(java) 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任 ...
- 【经典贪心练习】金银岛
[贪心练习]金银岛 哈喽,大家好,我是赏月君,今天做一下经典贪心算法的题目--金银岛,废话少说,上题目. 题目描述 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝 ...
- 百练-4110 圣诞老人的礼物-Santa Clau’s Gifts
4110:圣诞老人的礼物-Santa Clau's Gifts 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发 ...
- leetcode:55. 跳跃游戏【经典贪心】
分析 维护当前走到的位置,以及当前能走的最大区间内下一次走到的最远位置maxPos 当前能走的位置就是[cur, maxPos]但是在走的过程中,边走边看下一次的maxPos,然后当cur走到上一个m ...
最新文章
- 洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib
- visual studio配置第三方库
- 【Webview相关问题】登陆失败之cookie陷阱
- rust实战入门到进阶(4)
- Linux线程——线程创建和基本使用(多线程并发)
- 当滑动时隐藏Actionbar
- 弱引用的用途:在底层C++对象被上层python脚本对象使用时(转)
- Java 并发总结——线程池
- ZT Web Control 开发系列(一) 页面的生命周期
- 推行法定数字货币,现有支付宝/微信等支付系统,会否被数字货币支付系统替代并超越?
- 【Android 逆向】加壳技术识别 ( VMP 加壳示例 | Dex2C 加壳示例 )
- python安装pygame教程_Pygame安装教程
- 25.HTTP协议和WEB服务器APACHE
- linux tty core code,linux tty core 源码分析(6)
- redis-cli使用说明
- 在线教育数据分析实战项目案例
- Gallery与Imageswitch完美结合 做相册一绝啊
- Linux操作系统安全(一)
- 百度AI实现Web端人脸识别登陆-Springboot-Vue/element-ui
- SAP-ABAP性能优化之构建嵌套结构的哈希表