3 Star 61 Fork 5

programmercarl / kamacoder-solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0056.携带矿石资源.md 1.88 KB
一键复制 编辑 原始数据 按行查看 历史

56. 携带矿石资源

题目链接

C++

#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int c,n; // 容量 和 种类数量 
void chose(){
	vector<int>weight(n);
	vector<int>value(n);
	vector<int>nums(n);
	for(int i = 0;i < n;i++){
		cin >> weight[i];
	}
	for(int i = 0;i < n;i++){
		cin >> value[i];
	}
	for(int i = 0;i < n;i++){
		cin >> nums[i];
	}

	//标准的01背包
	vector<int>dp(c+1,0);
	for(int i = 0;i < n;i++){
		for(int j = c;j >= weight[i];j--){
			for(int k = 0;k <= nums[i] && (j - k*weight[i]) >= 0;k++){
				dp[j] = max(dp[j], dp[j-k*weight[i]] + k*value[i]);
			}
			
		}
	} 
	cout << dp[c] << endl;
}
 

int main(){
	cin >> c >> n;
	chose();
	return 0;
}

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int C = scanner.nextInt();
        int N = scanner.nextInt();

        int[] weights = new int[N];
        int[] values = new int[N];
        int[] nums = new int[N];

        for (int i = 0; i < N; i++) {
            weights[i] = scanner.nextInt();
        }
        for (int i = 0; i < N; i++) {
            values[i] = scanner.nextInt();
        }
        for (int i = 0; i < N; i++) {
            nums[i] = scanner.nextInt();
        }

        int[] dp = new int[C + 1];
        for(int i = 0; i < weights.length; i++) { // 遍历物品
            for(int j = C; j >= weights[i]; j--) { // 遍历背包容量
                // 以上为01背包,然后加一个遍历个数
                for (int k = 1; k <= nums[i] && (j - k * weights[i]) >= 0; k++) { // 遍历个数
                    dp[j] = Math.max(dp[j], dp[j - k * weights[i]] + k * values[i]);
                }
            }
        }
        System.out.println(dp[C]);
    }
}

Python

JS

Go

C

1
https://gitee.com/programmercarl/kamacoder-solutions.git
git@gitee.com:programmercarl/kamacoder-solutions.git
programmercarl
kamacoder-solutions
kamacoder-solutions
main

搜索帮助