
背包问题
文章平均质量分 59
没想好M
这个作者很懒,什么都没留下…
展开
-
背包问题求具体分案
12. 背包问题求具体方案题意:有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求出最大价值和字典序最小的方案。思路:这道题的一个妙处就是,在循环物品总数的时候反着循环(n~1),这样最后最大价值是f[1][m],在求最小字典序方案时就可以从编号1往n枚举了。求最小字典序,从1(字典序最小的地方)开始枚举可能有3种选择:①可选,必选;②不选,必不选;③可选可不选,必选;这样一定可以保证字典序最小。#include<iostream&原创 2022-12-26 09:55:31 · 188 阅读 · 0 评论 -
0/1背包模型
1、423. 采药(0/1背包模型)#include<iostream>using namespace std;const int N=110;const int M=1010;int v[N],w[N];int f[M];int main(){ int t,m; scanf("%d%d",&t,&m); for(int i=1;i<=m;i++) scanf("%d%d",&v[i],&w[i]); for(int i=1;原创 2022-12-26 09:53:07 · 110 阅读 · 0 评论 -
背包问题中总体积最多/恰好/最少为j的区别
这三个之间的区别主要是在初始化的时候有所不同:(这里的属性是要求最大值)1、体积最多为j: memset(f,0,sizeof(f)) ,v>=02、体积恰好为j:memset(f,-INF,sizeof(f)),f[0]=0,v>=03、体积至少为j:memset(f,-INF,sizeof(f)),f[0]=0AcWing8. 二维费用的背包问题(体积最多是j)题意:有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 vi,..原创 2022-03-11 17:31:30 · 596 阅读 · 1 评论 -
多种类型的背包问题
一、背包问题1、0/1背包:将物品划分为两个集合:①从1~i中选不包含i且体积小于等于V的,即f(i-1,j)②从1~i中选包含i且体积小于等于V的,即f(i-1,j-v[i])+w[i];f(i,j)表示从1~i中选且体积不超过j的物品的最大价值。#include<iostream>using namespace std;const int N=1e5+10;const int M=1e3;int v[N],w[N],dp[N][M];int main(){ int原创 2021-11-03 21:57:11 · 644 阅读 · 0 评论