最经典的多重背包求助!帮帮孩子吧/大哭
  • 板块题目总版
  • 楼主BuXiangMing
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/7/7 16:03
  • 上次更新2023/11/3 11:11:17
查看原帖
最经典的多重背包求助!帮帮孩子吧/大哭
850740
BuXiangMing楼主2023/7/7 16:03
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int N, V;
int w[100], v[100], n[100], dp[100];
int main() {
    cin >> N >> V;
    for (int i = 0; i < N; i++)
        scanf("%d%d%d", &w[i], &v[i], &n[i]);
    for (int i = 0; i < N; i++)
        for (int j = 0; j <= V; j++)
            for (int k = 1; k <= n[i]; k++)
                if (j >= k * w[i])
                    dp[j] = max(dp[j], dp[j - k*w[i]] + v[i] * k);
    cout << dp[V];
}

注意一下,v[i]是价值,w[i]是体积, 原题链接 感谢各位大佬的帮助!!小白感激不尽!!%%%

2023/7/7 16:03
加载中...