背包问题
-skyline-
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DP-背包问题-完全背包
问题:有N 种物品和一个容量是V 的背包,每种物品都有无限件可用。第i 种物品的体积是vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。状态表示:f[i,j]表示所有只考虑前i个物品且总体积不大于j的所有选法的最大值。状态计算:f[i,j]=(f[i-1,j], f[i-1,j-v[i]*k]+w[i]...原创 2019-11-14 08:33:20 · 285 阅读 · 0 评论 -
DP-背包问题-多重背包
多重背包问题:有N 种物品和一个容量是V 的背包。第i 种物品最多有si 件,每件体积是vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。1.朴素(和完全背包差不多,就多了个k<=s[i])O(N*V*S)#include<bits/stdc++.h>using namesp...原创 2019-11-14 08:29:33 · 439 阅读 · 0 评论 -
DP-背包问题-分组背包
分组背包问题:有 N组物品和一个容量是 V的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 v_ij,价值是 w_ij,其中 i是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。(分组背包问题:每组物品有s[i]个,每组至多选1个物品,枚举第 i 组物品选哪个)(多重背包问题:每种物品有s[i]个...原创 2019-11-14 08:23:22 · 358 阅读 · 0 评论 -
DP-背包问题-01背包
问题:N个物品,容量为V的背包,每件物品只能使用一次。第i 件物品的体积是vi ,价值是wi 。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。状态表示:dp[i][j]表示只从前i个物品中选,且总体积不超过j的所有选法的最大价值。状态计算:dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i]...原创 2019-10-07 08:52:55 · 255 阅读 · 0 评论 -
洛谷 P1048 采药
01背包问题#include<bits/stdc++.h>using namespace std;const int maxn=1005;int w[maxn],c[maxn],dp[maxn];int main(){ int t,m,ans=0; scanf("%d%d",&t,&m); for(int i=1;i<=m;++i){ sc...原创 2019-02-18 17:45:18 · 214 阅读 · 0 评论
分享