解题思路:
注意事项:
参考代码:
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语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1078 |
A+B for Input-Output Practice (II) (C语言代码)浏览:989 |
WU-小九九 (C++代码)浏览:1681 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:625 |
三角形 (C++代码)记忆化搜索浏览:1220 |
水仙花 (C语言代码)浏览:1047 |
数对 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1456 |
大家好,我是验题君浏览:576 |