多重背包
Posted aixin52129211
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多重背包相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h> using namespace std; const int N=110; int f[N][N]; int main() int n,m; cin>>n>>m; int v[N],w[N],s[N]; for(int i=1;i<=n;i++) cin>>v[i]>>w[i]>>s[i]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) for(int k=0;k*v[i]<=j&&k<=s[i];k++) f[i][j]=max(f[i][j],f[i-1][j-k*v[i]]+k*w[i]); cout<<f[n][m]<<endl; return 0;
多重背包笔记
多重背包笔记 前置芝士 在看本文之前,需要掌握: 基础dp背包算法; 单调队列 多重背包问题是什么 多重背包是指这样一类问题:给定$n$种物体,每种物体具有三个属性$v$,$w$,$c$,分别代表其体积,价值和数量。要求在其中选出一些,满足第$i$种物品最多选择$c_i$个,体积总和$sum_v \\
以上是关于多重背包的主要内容,如果未能解决你的问题,请参考以下文章