背包笔记

01背包

朴素版01背包

cpp 复制代码
cin >> n >> m;
f[0][0] = 0;
for(int i = 1; i <= n; i ++)
{
	for(int j = 0; j <= m; j ++)
	{
		f[i][j] = f[i - 1][j];//第i个物品不选
		if(j - v[i] >= 0)
		{
			f[i][j] = max(f[i][j], f[i - 1][j - v[i]] + w[i]);//选第i个物品
		}
	}
}

cout << f[n][m];

一维

复制代码
cin >> n >> m;
for(int i = 1; i <= n; i ++)cin >> v[i] >> w[i];
//初始化
//一维的要f[0~m]都是0
//如果要恰好背包容量是m的话,要f[0] = 0, f[1~m] = 负无穷
for(int i = 1; i <= n; i ++)
{
	for(int j = m; j >= v[i]; j --)
	{
		f[j] = max(f[j], f[j - v[i]] + w[i]);
	}
}

cout << f[m];
相关推荐
2401_8612775514 小时前
func(int* num)的实现是*num=2或者int a=3,num=&a都可以吗
c语言·c++
繁华似锦respect14 小时前
lambda表达式中的循环引用问题详解
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
我要升天!14 小时前
QT -- 网络编程
c语言·开发语言·网络·c++·qt
闻缺陷则喜何志丹14 小时前
【计算几何 矢量】2280. 表示一个折线图的最少线段数|1681
c++·数学·计算几何·矢量
Unlyrical15 小时前
为什么moduo库要进行线程检查
linux·服务器·开发语言·c++·unix·muduo
GIS阵地15 小时前
Qt实现简易仪表盘
开发语言·c++·qt·pyqt·qgis·qt5·地理信息系统
ModestCoder_15 小时前
强化学习 Policy 的 Tracking 能力全解析,以Legged_gym为例解说Policy的训练流程
人工智能·算法·自然语言处理·机器人·具身智能
崇山峻岭之间15 小时前
C++ Prime Plus 学习笔记028
c++·笔记·学习
阿猿收手吧!15 小时前
【C++】cpp虚函数和纯虚函数的声明和定义
开发语言·c++
小白程序员成长日记15 小时前
2025.12.02 力扣每日一题
数据结构·算法·leetcode