贪心算法之——背包问题(nyoj106)
背包问题
- 描述
-
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。
- 输入
-
第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。 - 输出
- 输出每组测试数据中背包内的物品的价值和,每次输出占一行。
- 样例输入
-
1 3 15 5 10 2 8 3 9
- 样例输出
-
65
提示:这是一个典型的结构体数组和贪心算法结合的应用,只要把物品写成结构体,然后按单位质量的价值排序,往背包装的是装值钱的这个谁都懂,就不再解释了。
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
struct Good{int v, w;
}g[10];
bool cmp(Good g1, Good g2)
{return g1.v>g2.v;
}
int main()
{int t;scanf("%d", &t);while(t--){int n, m;scanf("%d%d", &n, &m);for(int i=0; i<n; i++)scanf("%d%d", &g[i].v, &g[i].w);sort(g, g+n, cmp);int total = 0;for(int i=0; m; i++){if(m<=g[i].w) {total += m*g[i].v; break;}m -= g[i].w;total += g[i].w * g[i].v;}printf("%d\n", total);}return 0;
}
贪心算法之——背包问题(nyoj106)相关推荐
- 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题
packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...
- 算法设计与分析(第四周)贪心算法、背包问题
贪心算法 顾名思义,贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择.当然,希望贪心算法得到的最终结果也是整体最优的. 虽然贪心算 ...
- 背包问题 贪心算法 java_JS基于贪心算法解决背包问题
前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...
- 贪心算法解决背包问题
贪心算法解决背包问题 问题描述: 给定 n 个物品和一个容量为 C 的背包,请给出物品装入背包的方案,使得背包中物品的总价值 M 最大,并满足: 1.每个物品 I 的重量为 wi,价值为 vi. 2. ...
- 用贪心算法解背包问题(装载问题)
题目描述 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等.已知第 i 种食品的最多拥有Wi 公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大. 题 ...
- 背包问题 贪心算法 java_JS基于贪心算法解决背包问题示例
本文实例讲述了JS基于贪心算法解决背包问题.分享给大家供大家参考,具体如下: 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局 ...
- 贪心算法 背包问题 java_贪心算法求解背包问题
一.贪心算法 1.贪心算法概念 贪婪算法(Greedy algorithm)是一种对某些求最优解问题的更简单.更迅速的设计技术.用贪婪法设计算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测 ...
- 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf
. 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...
- 贪心算法 背包问题 java_贪心算法解背包问题
背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1 <= i <= n.这2类问题都具有最优子结构性质,极为相似,但背包问 ...
最新文章
- Node搭建多人聊天室
- 扩展源_Ubuntu14版本下无法使用php7.2版本的bcmath扩展
- 为什么要重写hashcode( )和equals( )?
- 【量化投资】策略四(聚宽)
- git url地址无效_如何同步多个 git 远程仓库
- SAP offline应用的flush按钮实现
- python无法安装第三方库read time out_解决pip install的时候报错timed out的问题
- 关于svn、git生成版本号脚本的改进
- javascript深入浅出——学习笔记(六种数据类型和隐式转换)
- .Net QQ互联教程 1
- DevExpress XtraTreeList的复选框 禁用
- python3 写九九乘法表(python 小白进阶之旅)
- Salus:安全扫描协调工具
- 机器学习—数据挖掘之灰色预测算法
- cocos creator横竖屏适配方案及常用设计尺寸
- 批量替换角标,为角标添加中括号
- 卸载精灵 v4.2 是什么
- 李沐动手学深度学习V2-基于注意力机制的seq2seq
- 最全的BAT大厂面试题整理
- 深度学习入门 (九):卷积层和池化层的实现