题目链接

https://www.acwing.com/problem/content/2/

思路

对于每一个物品我们能做一个选择,选上它(前提是当前的剩余背包容量够),或者不选,那么我们只需要在这其中取一个max即可,我们定义一个f[i][j]f[i][j]f[i][j]表示的含义是从前i个物品中选择背包容量最多为j的价值,那么我们只需要考虑当前第i个物品的取舍,也就是f[i][j]=max(f[i−1][j],f[i−1][j−v[i]]+w[i])f[i][j] = max(f[i-1][j],f[i-1][j-v[i]] + w[i])f[i][j]=max(f[i−1][j],f[i−1][j−v[i]]+w[i]),由于我们这个转移方程只会用到上一层的状态以及当前这一层的状态,所以我们再通过滚动数组优化为f[j]=max(f[j],f[j−v[i]]+w[i])f[j] = max(f[j],f[j-v[i]] + w[i])f[j]=max(f[j],f[j−v[i]]+w[i])

代码

#include<bits/stdc++.h>
using namespace std;const int N = 1000+10;
int f[N],n,v,V[N],W[N];int main()
{scanf("%d%d",&n,&v);for(int i = 1;i <= n; ++i) {scanf("%d %d",&V[i], &W[i]);}for(int i = 1;i <= n; ++i) {for(int j = v;j >= V[i]; --j){f[j] = max(f[j],f[j-V[i]] + W[i]);}}printf("%d\n",f[v]);return 0;
}

AcWing 2. 01背包问题(01背包模板)相关推荐

  1. 完全背包问题+01背包问题+分组背包+多重背包 总结

    背包问题都涉及到动态规划,利用dp进行更加优化的计算. 一.01背包 最基本的是01背包问题,题目一般类似:"在一定数目物品内,挑选总重量不超过一定数目的物品,其中每个物品只能选一次,求背包 ...

  2. 【动态规划】01背包问题+查找背包物品

    目录 一.0-1背包问题 二.问题分析 1.确定备忘录的具体含义 2.状态转移方程 3.初始化 4.遍历顺序及输出 5.回溯法求解最大价值时的背包物品 三.总结 四.完整代码 一.0-1背包问题 给定 ...

  3. 01背包模板、全然背包 and 多重背包(模板)

    转载请注明出处:http://blog.csdn.net/u012860063 贴一个自觉得解说不错的链接:http://www.cppblog.com/tanky-woo/archive/2010/ ...

  4. 01背包模板、完全背包 and 多重背包

    转载请注明出处:http://blog.csdn.net/u012860063 讲解链接:http://www.cppblog.com/tanky-woo/archive/2010/07/31/121 ...

  5. 动态规划之背包问题——01背包

    算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...

  6. 01背包问题:回溯法和限界分支、递归和迭代方式

    01背包问题 递归方式模板: void backtrack(int t){ if(t > n) output(x); else{ for(int i = f(n,t); i <= g(n, ...

  7. 基础算法--背包问题(01背包问题、完全背包问题、多重背包问题、分组背包问题)

    文章目录 前言 01背包问题 完全背包问题 多重背包问题 分组背包问题 前言 背包问题:给我们 i 件物品,每件物品都有体积 vi 和权重 wi ,给我们限制条件,让我们选择在背包的容量内,物品达到权 ...

  8. 0-1背包问题和背包问题

    (1)0-1背包问题 0-1背包问题可做如下描述: 给定n种物品和一个背包,每个物品有一个[wi,vi]对,表示其重量和价值.背包的总容量为C.对于每个物品,要么装要么不装(0或1),现在需要设计方案 ...

  9. 01背包问题(取还是不取呢)

    目录 一.理论知识 二.优化(滚动数组) 三.题(取与不取,总和小于等于某一值<容量>) 01背包问题,主要是当选到第i个物品取与不取,对结果的影响.取了会不会使结果增大. 一.理论知识 ...

  10. 0-1背包问题(DP)-超有趣版

    0-1背包问题(DP)-超有趣版 文章目录 0-1背包问题(DP)-超有趣版 一. 0-1背包问题 二. 0-1背包问题分析 三.0-1背包问题--DP算法求解 四.0-1背包问题--DP算法深入分析 ...

最新文章

  1. 【Qt】QDebug和log4cplus的联合使用
  2. Linux下C语言使用、编译与调试
  3. Webx框架:Spring Schema 和 Spring Ext
  4. 阅读源代码的一点小技巧
  5. 使用System Center DPM 2012 SP1保护企业关键数据(二)备份及恢复AD
  6. 微信浏览器内打开App Store链接
  7. 包治百病 | 如何将一个.NET Core类库发布到NuGet
  8. Webservice常用接口大全
  9. EasyUi-1 拖放
  10. python实现七种方法去除列表中的重复元素
  11. mysql安装位置_MySQL 5.7安装图文教程
  12. 【数学建模】基于matlab计划生育政策调整对人口数量、结构及其影响的研究【含Matlab源码 749期】
  13. dosbox编译c语言,DOSBOX的简单使用
  14. Profibus通讯接口连接不上怎么办
  15. JAVA/JSP B2C系统介绍
  16. 《符文冲突》unity塔防类游戏试做,经验源码分享-2
  17. ODL构建Hello项目
  18. vue 导入公共css_vue 公共样式处理_全局styl文件
  19. java游戏怎么导入jme3,LuoYing RPG教程-JME3游戏创建、场景编辑、载入完整示例教程...
  20. js模封装仿重力场方法

热门文章

  1. Matlab之semilogx、semilogx、loglog函数
  2. JavaScript HTML DOM 元素(节点)
  3. Python中字符串切片操作
  4. body-parser 是一个Http请求体解析中间件
  5. DataGridView导出到Excel的三个方法
  6. Android 获取手机总内存和可用内存等信息
  7. jquery tmpl 详解
  8. C#操作EXCLE表
  9. 快速实现一个简单的canvas迷宫游戏
  10. Redisbook学习笔记(3)数据类型之列表