例题 圣诞老人的礼物

分发糖果,多箱不同的糖果,每箱有自己的价值和重量,每箱都可以拆分成任意散装组合带走,但是雪橇只能装下W重量的糖果,请问圣诞老人最多能敌啊走多大价值的糖果。
输入:
1⃣️n (箱子数量)W(重量)
2⃣️n行 每行给出箱子的价值和重量(整数)
输出:
最大价值(浮点数)

做法1:
价值/重量从大到小排序,再尽可能装
o(nlogn)排序

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<iomanip>
#include<vector>
#include<string>
#define M 200000010
#define INF 0x3f3f3f3f
const double EPS = 1e-6;
using namespace std;
struct Candy{int v,w;bool operator < (const Candy &other)const{return double(v)/w - double(other.v)/other.w > EPS;}
}candies[100];
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+10);double total_v=0,total_w=0;for(int i=0; i<n; i++){if(total_w+candies[i].w <= w){total_w += candies[i].w;total_v += candies[i].v;}else{total_v += candies[i].v * double(w-total_w)/candies[i].w;break;}}printf("%.2f\n",total_v);return 0;
}

贪心算法,每一步行动总是按某种指标选取最优的操作来进行,只看眼前,不考虑以后造成的影响。
贪心算法需要证明其正确性。
圣诞老人题,如果糖果只能整箱拿,那么贪心算法错误
eg
8 6
5 5
5 5
雪橇容量 10

贪心题目——圣诞老人的礼物相关推荐

  1. 贪心算法—圣诞老人的礼物(POJ 4110)

    贪心算法--物品可拆分情况求背包最大价值问题 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿 ...

  2. 简单贪心问题-圣诞老人的礼物

    1.题目描述: 圣诞老人要给每家每户从不同的礼物,但是圣诞老人的车只能承载一定的重量.请问圣诞老人该怎样装载礼物才能使得整车的总价值最大. 2.解题思路: 看其每个礼物的性价比,谁的性价比最大,则谁先 ...

  3. 贪心算法 圣诞老人的礼物

    贪心选择是每次都要收录单位重量价值最大的礼物 #include <iostream> #include <stdio.h> #include <memory.h> ...

  4. Bailian4110 圣诞老人的礼物-Santa Clau’s Gifts【背包+贪心】

    4110:圣诞老人的礼物-Santa Clau's Gifts 总时间限制: 1000ms 内存限制: 65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖 ...

  5. 贪心算法之圣诞老人的礼物

    问题描述 圣诞节来临了,中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走,圣诞老人的寻路雪橇最多只能装下重量W的糖果,请问圣诞老人最多能带 ...

  6. Poj 圣诞老人的礼物 贪心

    圣诞节?快乐^ - ^ POJ 4110 圣诞老人的礼物(贪心) 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合 ...

  7. 4110:圣诞老人的礼物-Santa Clau’s Gifts(java)

    4110:圣诞老人的礼物-Santa Clau's Gifts(java) 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任 ...

  8. 百练-4110 圣诞老人的礼物-Santa Clau’s Gifts

    4110:圣诞老人的礼物-Santa Clau's Gifts 查看 提交 统计 提示 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发 ...

  9. 算法基础:圣诞老人的礼物--贪心

    题目: 圣诞节来临了,圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿雪橇最多只能装下重量W的糖果,请问圣诞老人最多能带走多 ...

最新文章

  1. 4、kubernetes 集群管理工具 kubectl
  2. 纹理与表面细节添加方法---小结
  3. Angular 一个简单的指令实现 阻止事件扩散
  4. Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
  5. ClickHouse【环境搭建 01】Linux环境单机版在线安装 Code:210.DB::NetException + Init script is already running 问题处理
  6. boost::hana::negate用法的测试程序
  7. 常用命令集合_Windows
  8. 特斯拉股价周一大跌8.55% 市值缩水640亿美元
  9. 现在很多富人有钱了,就喜欢去付费学习
  10. 静态内部类实现单例_为什么用枚举类来实现单例模式越来越流行?
  11. eclipse查看git地址_40个适用于Linux管理员和开发人员的git命令(上)
  12. 电驴服务器搜索文件排序,eMule如何搜索文件
  13. Oracle sqluldr2
  14. 关于U盘还原安装Mac系统
  15. 人力资源面试必问的十大问题
  16. PCB板设计布局原则有哪些?
  17. 一个故事带你看透HTTPS(上)
  18. Linux中解除带锁的文件夹
  19. 我为Bill Gates熬夜加班的那个晚上
  20. Android-SDK下载和安装

热门文章

  1. kong翻译_Kong[孔]的中文翻译及英文名意思
  2. python3个引号啥意思_Python中单引号,双引号,3个单引号及3个双引号的区别
  3. 嘀嗒出行的IPO备战
  4. 网络货运新风口下,传统的无车承运人如何实现弯道超车?
  5. 5800计算机交点法程序大全,FX5800计算器交点法正反算程序加入高程及隧道超欠挖...
  6. 我的世界java版怎么用结构方块_我的世界结构方块指令(获取结构方块和 使用方法)...
  7. 软件测试实用技术与常用模板
  8. 深度学习论文精读(4):MobileNetV2
  9. Marvell 88nv1120开卡方法集大成之作,附开卡工具
  10. 面试笔试中算法设计问题的回答技巧总结