算法基础:圣诞老人的礼物--贪心
题目:
圣诞节来临了,圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走。圣诞老人的驯鹿雪橇最多只能装下重量W的糖果,请问圣诞老人最多能带走多大价值的糖果。
输入
第一行由两个部分组成,分别为糖果箱数正整数n(1 <= n <= 100),驯鹿能承受的最大重量正整数w(0 < w < 10000),两个数用空格隔开。其余n行每行对应一箱糖果,由两部分组成,分别为一箱糖果的价值正整数v和重量正整数w,中间用空格隔开。
输出
输出圣诞老人能带走的糖果的最大总价值,保留1位小数。输出为一行,以换行符结束。
样例输入
4 15
100 4
412 8
266 7
591 2
样例输出
1193.0
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct Candy{int v,w;
}C[105];
bool compare(Candy a,Candy b)
{return (a.v*1.0/a.w)>(b.v*1.0/b.w);
}
int main()
{int N,W;double V=0; cin>>N>>W;for(int i=0;i<N;i++)cin>>C[i].v>>C[i].w;sort(C,C+N,compare);for(int i=0;i<N;i++){if(W>C[i].w){V+=C[i].v;W-=C[i].w;}else{V+=W*1.0/(C[i].w)*(C[i].v);break;}}printf("%.1f",V);return 0;
}
思路:
1.用贪心的思路,用c++自带的sort函数对礼物的性价比进行排序,然后依次拿走,如果能拿走完就全拿走,拿走一些则进行比例的分配。
2.排序的时候是性价比大的排在前面,所以写compare函数时返回大的那个。
算法基础:圣诞老人的礼物--贪心相关推荐
- Poj 圣诞老人的礼物 贪心
圣诞节?快乐^ - ^ POJ 4110 圣诞老人的礼物(贪心) 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合 ...
- 贪心算法之圣诞老人的礼物
问题描述 圣诞节来临了,中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走,圣诞老人的寻路雪橇最多只能装下重量W的糖果,请问圣诞老人最多能带 ...
- 【算法基础26】贪心下——哈夫曼树、排序不等式、绝对值不等式、推公式的思路与应用
一.合并果子(哈夫曼树) 题目描述:给出n堆不同种类的果子,每堆果子的数量不同,每个果子的重量为1.每次只能合并相邻堆的果子,且花费的体力是果子的重量和.将所有果子合并成一堆,求最小的体力花费. 问题 ...
- 基础算法——贪心算法(圣诞老人的礼物)
题目是这样的: 圣诞节来临了,中圣诞老人准备分发糖果现在有多箱不同的糖果, 每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿雪橇最多只能装下重量W的糖果,请问圣诞老人最 ...
- 题解 蓝桥杯 算法训练 ALGO-1003 礼物 (贪心) 解析
题目 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友.在走出了怪物森林以后,JiaoShou看到了排成一排的N个石子.这些石子很漂亮,JiaoShou决定 ...
- 贪心题目——圣诞老人的礼物
例题 圣诞老人的礼物 分发糖果,多箱不同的糖果,每箱有自己的价值和重量,每箱都可以拆分成任意散装组合带走,但是雪橇只能装下W重量的糖果,请问圣诞老人最多能敌啊走多大价值的糖果. 输入: 1⃣️n (箱 ...
- Bailian4110 圣诞老人的礼物-Santa Clau’s Gifts【背包+贪心】
4110:圣诞老人的礼物-Santa Clau's Gifts 总时间限制: 1000ms 内存限制: 65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖 ...
- 任务分配算法c语言程序,程序员算法基础——贪心算法
原标题:程序员算法基础--贪心算法 前言 贪心是人类自带的能力,贪心算法是在贪心决策上进行统筹规划的统称. 比如一道常见的算法笔试题跳一跳: 有n个盒子排成一行,每个盒子上面有一个数字a[i],表示最 ...
- 《趣学算法(第2版)》读书笔记 Part 4 :贪心算法基础(操作)
14天阅读挑战赛 系列笔记链接 <趣学算法(第2版)>读书笔记 Part 1 :如何高效学习算法 <趣学算法(第2版)>读书笔记 Part 2 :算法入门 <趣学算法(第 ...
最新文章
- 睡前刷8分钟手机,身体兴奋1小时
- c# 基于layui的通用后台管理系统_基于spring boot和vuejs的通用后台管理系统脚手架 guns-lite...
- c++ 迭代器支持的运算
- java清除输出内容_java – 从JSch中的命令输出中删除shell东西...
- 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。...
- sd-card on android 5.0,Android5.0以上SDCard文件删除问题
- 破解数字游戏 —— 概率篇
- echarts 关系图 参数_Echarts关系图(使用重力图)
- 新手必读——OOP三大特征及联系
- c/c++ hash表 (哈希表、字典表)
- 原型设计工具——墨刀
- linux录制声卡声音_Linux ALSA 多声卡操作
- 网页或大屏展示的倒计时器
- Linux/Ubuntu的常用文件查找命令
- (CVPR-2018)Non-local Neural Networks
- 二维彩虹产品功能更新(H5编辑二维码)
- Yansongda\Pay 支付宝返回值封装
- hdmi接口线_想要畅享4K高画质,HDMI线怎么选?
- 团队项目--地铁信息查询
- 使用含有关键字exists查找未分配具体部门的员工的所有信息。