解题思路:
注意事项:
参考代码:
Scanner scanner=new Scanner(System.in);
int v=scanner.nextInt();//容量
int n=scanner.nextInt();//物品个数
int a[]=new int[n+1];
int dp[][]=new int [n+1][v+1];
for (int i = 1; i <=n; i++) {
a[i]=scanner.nextInt();
}
for (int i = 1; i <=n ; i++) {
for (int j = 1; j <=v; j++) {
if (a[i]<=j) {
dp[i][j]=Math.max(dp[i-1][j], dp[i-1][j-a[i]]+a[i]);
}
else {
dp[i][j]=dp[i-1][j];
}
}
}
System.out.println(v-dp[n][v]);}
0.0分
3 人评分
C语言考试练习题_保留字母 (C语言代码)浏览:685 |
C二级辅导-同因查找 (C语言代码)浏览:660 |
简单的a+b (C语言代码)浏览:489 |
蓝桥杯历届试题-九宫重排 (C++代码)浏览:2783 |
不容易系列2 (C语言代码)浏览:589 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:956 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)万恶的long long浏览:875 |
简单的a+b (C语言代码)浏览:523 |
简单的a+b (C语言代码)浏览:807 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |