Acwing
Dawn_mao
这个作者很懒,什么都没留下…
展开
-
多重背包_DP一维数组
多重背包题目描述有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。解释零一背包只有每个物品的价值和体积,对应核心代码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]);由于多重背包只是在零一背包的基础上增加了数量限制,故原创 2022-05-05 23:27:45 · 236 阅读 · 0 评论 -
完全背包_DP二维数组及优化一维数组
完全背包问题描述有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。DP_二维数组#include<bits/stdc++.h>using namespace std;const int N = 1010;int n,m;int v[N],w[N],f[N][N]={0};int main(){ cin >&g原创 2022-05-04 14:34:41 · 439 阅读 · 0 评论 -
零一背包_DP二维数组及优化及DP一维数组
零一背包题目描述有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。DP_二维数组代码#include<bits/stdc++.h>using namespace std;const int N = 1001;int n,m;int v[N],w[N],f[N][N]={0};int main(){ cin >&原创 2022-05-04 11:10:23 · 393 阅读 · 0 评论