参考代码:
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 人评分
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:878 |
C语言训练-斐波纳契数列 (C语言代码)浏览:3015 |
C语言训练-素数问题 (C语言代码)浏览:1065 |
【出圈】 (C语言代码)浏览:590 |
【密码】 (C语言代码)浏览:350 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:624 |
WU-格式化数据输出 (C语言代码)浏览:1818 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |