摘要: 题目链接acwing9 解题思路图解 通过解题思路我们可以写下如下代码 #include<bits/stdc++.h> using namespace std; const int N=110; int f[N][N]; //只从前i组物品中选,当前体积小于等于j的最大值 int v[N][N],w 阅读全文
posted @ 2020-11-28 23:50 hnkjdx_react 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目链接acwing8 这道题目跟01背包问题很像,只不过是在01背包的基础加上了一个重量限制。 01背包问题的动态转移方程是 那么这个多了个重量,那么可以再开一维,变成三维 同01背包,它可以压缩亿下空间,于是变成了 状态转移方程出来了,那么写代码也轻松了. #include <bits/stdc 阅读全文
posted @ 2020-11-28 23:38 hnkjdx_react 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目来源acwing7 利用多重背包的二进制优化,可以将一种被扒皮分散为多个01背包,用三个a,b,c数组来记录转换之后的所有背包,c为bool型数组,如果为true,就是完全背包,false则为01背包,最后做一遍,以c的值分类。做完全背包和01背包 #include <iostream> #in 阅读全文
posted @ 2020-11-28 23:18 hnkjdx_react 阅读(79) 评论(0) 推荐(0) 编辑