二维费用的背包问题题目链接
二维费用的背包问题题目类型
二维背包模板题
二维费用的背包问题代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 110;
int f[N][N];
int main(){
int n,v,m;
scanf("%d%d%d",&n,&v,&m);
for(int i =0;i<n;++i)
{
int vi,mi,wi;
scanf("%d%d%d",&vi,&mi,&wi);
for(int j=v;j>=vi;j--)
{
for(int k=m;k>=mi;k--)
{
f[j][k]=max(f[j][k],f[j-vi][k-mi]+wi);
}
}
}
printf("%d\n",f[v][m]);
return 0;
}潜水员题目链接
潜水员题目类型
二维背包模板题(至少!!!)
潜水员代码
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 22, M = 80;
int f[N][M];
int main(){
int n,m,t;
cin >> n >> m >> t;
memset(f, 0x3f, sizeof f);
f[0][0] = 0;
while(t--)
{
int v1, v2, w;
cin>>v1>>v2>>w;
for(int j=n;j>=0;j--)
{
for(int k=m;k>=0;k--)
{
f[j][k] = min(f[j][k], f[max(0, j-v1)][max(0, k - v2)] + w);
}
}
}
cout<<f[n][m]<<endl;
return 0;
}