本题提供思想 看看你看完能不能写出来!!!
有N件物品和一个容积为M的背包。第i件物品的体积w[i],价值为d[i].求解将那些物体装入背包可是价值总和最大。每种物品只有一件,可以选择放或者不放。(N <= 3500, M <= 13000)
用F[i][j]表示取前i种物品,使他们的总体积不超过j的最优取法取得的价值总和。则要求F[N][M]
边界:if(w[1] <= j)
F[1][j] = d[1];
else
F[1][j] = 0;
用F[i][j] = max(F[i-1][j], F[i-1][j-w[j]]+d[i]) 取或不取第i件物品,两者中选优(j-w[i] >= 0才有第二项)