解题思路:
注意事项:
参考代码:
import java.util.Scanner; public class Main { 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][n+1]; int []v=new int [m+1];//物品的体积 int []w=new int [m+1];//物品的价值 for(int i=1;i<=m;i++) { v[i]=scanner.nextInt(); w[i]=scanner.nextInt(); } for(int i=1;i<=m;i++)//循环遍历每个物品 { for(int j=1;j<=n;j++)//遍历每个容量空间 { if(j>=v[i]) { //容量大于物品体积时 dp[i][j]=Math.max(dp[i-1][j], dp[i-1][j-v[i]]+w[i]);//取上一个最优解和填充当前物品的最优解大者 }else { dp[i][j]=dp[i-1][j];//容量小于当前物品体积时不做判断,直接填充上一个最优解 } } } System.out.println(dp[m][n]); } }
0.0分
6 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:684 |
C语言训练-数字母 (C语言代码)浏览:649 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:522 |
母牛的故事 (C语言代码)浏览:1428 |
完数 (C语言代码)浏览:687 |
1009题解浏览:749 |
sizeof的大作用 (C语言代码)浏览:1450 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:455 |
明明的随机数 (C语言代码)浏览:953 |