经典DP动规 0-1背包问题 二维与一维
先上代码 b站讲解视频 灯神讲背包
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010; // 规模
int n, m; // n为件数 m为背包总容量
int f[N][N];
int v[N], w[N]; // 体积v 和 价值w
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> v[i] >> w[i];
for (int i = 1; i <= n; i++)
// 可以带i件时所能获得的最大
for (int j = 0; j <= m; j++)
{ // 背包体积为j 时所能带最多
f[i][j] = f[i - 1][j]; // 背包体积不够时 回退上一件的价值
if (j >= v[i])
// 状态转移方程
f[i][j] = max(f[i][j], f[i - 1][j - v[i]] + w[i]);
}
/* 优化成一维 */
// 第二层循环改为
/*
for (int j = m; j >= v[i]; j--)
f[j] = max(f[j], f[j - v[i]] + w[i]);
输出直接 cout << f[m] << endl;
*/
int res = 0;
for (int i = 0; i <= m; i++)
res = max(f[n][i], res);
cout << res << endl;
return 0;
}
经典DP动规 0-1背包问题 二维与一维的更多相关文章
- php 二维转一维
Array( [0] => Array ( [salesorderid] => 10001 [createdtime] =& ...
- Win10 UWP开发:摄像头扫描二维码/一维码功能
这个示例演示整合了Aran和微软的示例,无需修改即可运行. 支持识别,二维码/一维码,需要在包清单管理器勾选摄像头权限. 首先右键项目引用,打开Nuget包管理器搜索安装:ZXing.Net.Mobi ...
- 三维码 & 二维码 & 一维码
三维码 & 二维码 & 一维码 3D, 2D, 1D 防伪国家标准 -<结构三维码防伪技术条件> http://www.xinhuanet.com/tech/2019-12 ...
- 关于DP动规
今天学了动规,简单记录一下自己理解了的:(要不俺就忘了) 首先,啥是DP??? 动态规划,其实就是组合子问题的解来解决整个问题的解,由于每个子问题他只判断一次,所以不会重复计算,那就很牛啊!!! 专业 ...
- 经典DP 二维换一维
HDU 1024 Max Sum Plus Plus // dp[i][j] = max(dp[i][j-1], dp[i-1][t]) + num[j] // pre[j-1] 存放dp[i-1] ...
- hdu 1114 dp动规 Piggy-Bank
Piggy-Bank Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit S ...
- DP:Cow Exhibition(POJ 2184)(二维问题转01背包)
牛的展览会 题目大意:Bessie要选一些牛参加展览,这些牛有两个属性,funness和smartness,现在要你求出怎么选,可以使所有牛的smartness和funness的最大,并且这两 ...
- csp-s模拟测试50(9.22)「施工(单调栈优化DP)」·「蔬菜(二维莫队???)」·「联盟(树上直径)」
改了两天,终于将T1,T3毒瘤题改完了... T1 施工(单调栈优化DP) 考场上只想到了n*hmaxn*hmaxn的DP,用线段树优化一下变成n*hmaxn*log但显然不是正解 正解是很**的单调 ...
- hdu1081 DP类最大子段和(二维压缩+前缀和数组/树状数组计数)
题意:给出一个 n * n 的数字矩阵,问最大子矩阵和是多少. 由于和最长子段和问题类似,一开始想到的就是 DP ,一开始我准备用两个循环进行 DP ,对于每一个 (i,j) ,考察(i - 1,j) ...
随机推荐
- PHP exit() 函数
实例 输出一条消息,并退出当前脚本: <?php$site = "http://www.w3cschool.cc/";fopen($site,"r")or ...
- 痞子衡嵌入式:MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项(i.MXRT500为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项. 痞子衡前段时间写过一篇小文<为i.MXRT设计更 ...
- 代码扫描Sonar使用教程
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从多个维度检测代码质量: 可靠性 安全性 可维护性 覆盖率 重复率 通过插件形式,可以支持包括Java,C#,C/C++,PL/S ...
- windows:shellcode 远程线程hook/注入(二)
https://www.cnblogs.com/theseventhson/p/13218651.html 上次分享了基本的远程注入方法,遗留了一个问题:shellcode执行完后怎么回到线程su ...
- 【FZYZOJ】无向图的联通图个数 题解(组合数学)
题目大意:求无向图的连通图个数.由于个数可能很大,只需要求出结果$mod1000000009$的值.$n\leq 1000$ ------------------------- 对于一个含有$n$个结 ...
- Mybitis根据工具类反射数据库生成映射+整合springboot
一 反向生成数据库mapper的工具类: 添加依赖 <dependency> <groupId>org.mybatis.generator</groupId> &l ...
- 006_go语言中的if else条件语句
代码演示 package main import "fmt" func main() { if 7%2 == 0 { fmt.Println("7 is even&quo ...
- 小白学习Python之路---py文件转换成exe可执行文件
一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的 ...
- JS学习第四天
循环语句 while(){ }: while :先判断再执行,如果while的条件结果为false,那么执行语句块中代码一句都不走 do(){ }while; do while:先执行代码块中的语 ...
- Pycharm中对与Python的快捷方式
转自博客园 @python~小成录 pycharm常用快捷键与设置 pycharm高频率使用的快捷键 Ctrl+Shift+F10 运行当前的页面 Ctrl + / 注释(取消注释)选择的行 Ct ...