背包问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值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)相关推荐

  1. 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题

    packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...

  2. 算法设计与分析(第四周)贪心算法、背包问题

    贪心算法 顾名思义,贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择.当然,希望贪心算法得到的最终结果也是整体最优的. 虽然贪心算 ...

  3. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

    前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...

  4. 贪心算法解决背包问题

    贪心算法解决背包问题 问题描述: 给定 n 个物品和一个容量为 C 的背包,请给出物品装入背包的方案,使得背包中物品的总价值 M 最大,并满足: 1.每个物品 I 的重量为 wi,价值为 vi. 2. ...

  5. 用贪心算法解背包问题(装载问题)

    题目描述 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等.已知第 i 种食品的最多拥有Wi 公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大. 题 ...

  6. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题示例

    本文实例讲述了JS基于贪心算法解决背包问题.分享给大家供大家参考,具体如下: 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局 ...

  7. 贪心算法 背包问题 java_贪心算法求解背包问题

    一.贪心算法 1.贪心算法概念 贪婪算法(Greedy algorithm)是一种对某些求最优解问题的更简单.更迅速的设计技术.用贪婪法设计算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测 ...

  8. 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf

    . 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...

  9. 贪心算法 背包问题 java_贪心算法解背包问题

    背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1 <= i <= n.这2类问题都具有最优子结构性质,极为相似,但背包问 ...

最新文章

  1. Node搭建多人聊天室
  2. 扩展源_Ubuntu14版本下无法使用php7.2版本的bcmath扩展
  3. 为什么要重写hashcode( )和equals( )?
  4. 【量化投资】策略四(聚宽)
  5. git url地址无效_如何同步多个 git 远程仓库
  6. SAP offline应用的flush按钮实现
  7. python无法安装第三方库read time out_解决pip install的时候报错timed out的问题
  8. 关于svn、git生成版本号脚本的改进
  9. javascript深入浅出——学习笔记(六种数据类型和隐式转换)
  10. .Net QQ互联教程 1
  11. DevExpress XtraTreeList的复选框 禁用
  12. python3 写九九乘法表(python 小白进阶之旅)
  13. Salus:安全扫描协调工具
  14. 机器学习—数据挖掘之灰色预测算法
  15. cocos creator横竖屏适配方案及常用设计尺寸
  16. 批量替换角标,为角标添加中括号
  17. 卸载精灵 v4.2 是什么
  18. 李沐动手学深度学习V2-基于注意力机制的seq2seq
  19. 最全的BAT大厂面试题整理
  20. 深度学习入门 (九):卷积层和池化层的实现

热门文章

  1. 《神策军》第三期来袭!
  2. Redisson官方文档 - 目录
  3. 面向对象开发===继承特点
  4. 在git中出现中文乱码的解决方案
  5. git fetch 命令
  6. 智慧城市需要百姓智慧
  7. Compass 更智能的搜索引擎(3)--高亮,排序,过滤以及各种搜索
  8. OneAlert 入门(一)——事件流
  9. Spring3 集成 Hibernate3
  10. 分享转帖 -- 考勤的背后 (加注个人点评哦)