李聪


私信TA

用户名:uq_77396067382

访问量:6173

签 名:

等  级
排  名 285
经  验 5540
参赛次数 0
文章发表 23
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

参考代码:

import java.util.Scanner;
public class T2134混合背包 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		int m=scanner.nextInt();//背包
		int n=scanner.nextInt();//物品数量
		int dp[]=new int[m+1];
		for (int i = 0; i < n; i++) {
			int w=scanner.nextInt();//重量
			int c=scanner.nextInt();//价值
			int p=scanner.nextInt();//数量
			for (int j = m; j >=w; j--) {
				if (p==0) {
					for (int j2 = 1; j2*w<=j; j2++) {
						dp[j]=Math.max(dp[j], dp[j-j2*w]+j2*c);
					}
				}
				else {
					for (int j2 = 0; j2*w <=j&&j2<=p; j2++) {
						dp[j]=Math.max(dp[j], dp[j-j2*w]+j2*c);
					}
				}			}
		}
		System.out.println(dp[m]);
	}
}


 

0.0分

4 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区