题目描述

给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个
输入
输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。

以后n行每行两个数Wi和Vi,表示物品的重量和价值

输出

输出1行,包含一个整数,表示最大价值。

样例输入

3 5
2 3
3 5
4 7

样例输出

8

数据规模和约定

1<=N<=200M<=5000.

来源

jwx

C++

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
const int VERTICES = 210;struct item {int w;int v;
} node[VERTICES];int main() {int n, m;cin >> n >> m;int dp[n + 1][m + 1];memset(dp, 0, sizeof(dp));for (int i = 1; i <= n; i++) {cin >> node[i].w >> node[i].v;}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (node[i].w > j) {dp[i][j] = dp[i - 1][j];} else {dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - node[i].w] + node[i].v);}}}cout << dp[n][m] << endl;return 0;
}

Python

class Node:def __init__(self, w, v):self.w = wself.v = vn, m = map(int, input().split())
dp = [[0] * (m + 1) for _ in range(n + 1)]
nodes = [0]for _ in range(n):w, v = map(int, input().split())item = Node(w, v)nodes.append(item)for i in range(1, n + 1):for j in range(m + 1):if nodes[i].w > j:dp[i][j] = dp[i - 1][j]else:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - nodes[i].w] + nodes[i].v)print(dp[n][m])

1709: 简小胡的背包相关推荐

  1. 训练赛《眼不见,心不烦,理不乱》题解

    附注: 目前,题解还在更新当中,有什么疑惑,欢迎留言讨论 A.简小胡的背包 分析:典型的01背包,我们把这个简小胡的背包分成若干个集合,每一个集合里装有一定数量的物品和所装物品重量的限度(承载量),并 ...

  2. 1919: kirito's 星爆气流斩(多重背包转换为01背包+二进制优化)

    Description 主角kirito是使用世界首款完全潜行游戏"刀剑神域(Sword Art Online)"的玩家.曾经很幸运的参与过封闭测试,并买下正式版的kirito,正 ...

  3. zcmu 1919 kirito's 星爆气流斩(多重背包转01背包,并且进行2进制优化)

    思路:明显的背包问题,并且是多重背包,多重背包有两种思路 思路1:当成一种新情况考虑,因为有个数的限制所以跟完全背包不一样的地方在于状态转移方程应该是dp[i]=max{dp[i],dp[i-k*w[ ...

  4. 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解

    01背包问题: 状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j] ...

  5. p1164 小A点菜 题解——背包初步

    传送门 除去花里胡哨的表层题干,其实可以简化为: 若有m个东西,每取一个要K个代价,问若要求取出数据的代价为n的方案数是多少 其实是01背包的一种变式(反正我就是这么认为的,不对又怎样,打我啊). 我 ...

  6. P1417 烹调方案 (0/1背包+贪心)

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  7. unity 背包选中_Unity背包系统实现

    MVC模式简析: Model: BackpackConfig.json:存放装备信息 Item:json文件对应的数据模型 View: Scroll Rect:制作可滑动的背包面板 Grid Layo ...

  8. 【洛谷4389】付公主的背包(生成函数,多项式运算)

    [洛谷4389]付公主的背包(生成函数,多项式运算) 题面 有一个容量最多为\(10^5\)的背包 有\(n\)种物品,数量无限,题解是\(v_i\) 给定一个\(m\),求所有\(s\in[1,m] ...

  9. qduoj - 今晚一起打CF吧——Codeforces,十三亿人的ACM梦。(排序背包)

    题目链接:点击查看 题目大意:给出一个初始值point,然后给出一个minute表示每分钟减少的分数和time表示做完该题需要的分数,请给出一个合适的做题顺序要求在规定时间内最后得到的分数最高 题目分 ...

  10. 蓝桥杯之貌似化学(g背包)

    问题描述 现在有a,b,c三种原料,如果他们按x:y:z混合,就能产生一种神奇的物品d. 当然不一定只产生一份d,但a,b,c的最简比一定是x:y:z 现在给你3种可供选择的物品: 每个物品都是由a, ...

最新文章

  1. 紧急提醒!售价3980,成本价80,你被坑过吗?
  2. 微信8年,干掉了短信也杀死了媒体?
  3. 图的存储结构matlab,matlab存储 一幅图像的的函数为( )
  4. Spring-Bean标签属性scope范围
  5. QT、QTE、qtopia区别
  6. java cmd找不到文件_cmd中输入java找不到文件解决方法
  7. 云服务器怎么装mysql_云服务器(windows环境)安装mysql图文教程
  8. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·006
  9. 1025. 反转链表 (25)-浙大PAT乙级真题
  10. 小学计算机教师德育工作计划,小学教师个人德育工作计划
  11. bulk interface驱动_USB驱动程序(较详细)三
  12. 微波雷达传感器模块,智能感知人体存在,实时感应交互控制应用
  13. 电机驱动L298N调试的问题。
  14. 计算机之父图灵成为新50英镑“代言人”,吴恩达发推:Wonderful!
  15. 解决Rstudio打开空白
  16. 【python练习笔记】神秘的王宫
  17. html5网页中的表格教程,javascript程序设计_达内javascript教程-达内web前端培训
  18. python 科学计算三维可视化笔记(第三周 高级进阶)
  19. 上海高一计算机奥赛,上海物理奥赛金牌“大神”爱番剧和高达,已保送清华大学姚班...
  20. html 导出excel 列被合并,前端实现导出excel单元格合并和调整样式

热门文章

  1. bzoj 2827 千山鸟飞绝(treap)
  2. 零基础学编程的我的心路历程
  3. 扫盲区分IaaS和PaaS
  4. 计算机类绘图的文献,绘图计算机论文,关于机械制图计算机绘图的有效融合相关参考文献资料-免费论文范文...
  5. 汽车“新四化”,如何扬长避短?
  6. 博客怎么写出好的文章吸引读者,只有7个基本的写作技巧
  7. 性能监控——cpu使用率过高,该怎么分析?
  8. SCI检索号识别一法:UT-WOS与UT-ISI
  9. 雅戈尔关于媒体报道出澄清公告 谨防股价变动
  10. 局域网https安全证书解决方案mkcert