public class test26 {
public static void main(String[] args) {
int m = 10;
int n = 3;
int[] w = {0, 3, 4, 5 };
int[] p = {0, 4, 5, 6 };
int c[][] = BackPack_Solution(m, n, w, p);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
System.out.print(c[i][j] + "\t");
if (j == m) {
System.out.println();
}
}
}
}
public static int[][] BackPack_Solution(int m, int n, int[] w, int[] p) {
int c[][] = new int[n + 1][m + 1];
for (int i = 0; i < n + 1; i++) {
c[i][0] = 0;
}
for (int i = 0; i < m + 1; i++) {
c[0][i] = 0;
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
if ((j - w[i]) >= 0) {
c[i][j] = Math.max(c[i - 1][j - w[i]] + p[i], c[i - 1][j]);
}else{
c[i][j] = c[i-1][j];
}
}
}
return c;
}
}
01背包问题
最新推荐文章于 2017-11-03 10:04:24 发布