二维费用的背包问题题目链接

8. 二维费用的背包问题 - AcWing题库

二维费用的背包问题题目类型

二维背包模板题

二维费用的背包问题代码

#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;
}

潜水员题目链接

1020. 潜水员 - AcWing题库

潜水员题目类型

二维背包模板题(至少!!!)

潜水员代码

#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;
}

最讨厌你,也最喜欢你