0-1背包问题
简要说下动态规划:通常用来求解最优化问题,通过组合子问题的解来求得原问题的解。动态规划求解要有两个要素:最优子结构和子问题重叠。(暂时不太理解)
使用背包问题
这里就是0-1背包问题。有一堆物品m,重量w,价值v,背包容量c。
递推式:
1) j<w(i) V(i,j)=V(i-1,j) //i指i个物品,j是容量
2) j>=w(i) V(i,j)=max{ V(i-1,j),V(i-1,j-w(i))+v(i) }
由子问题的最优解来求出最优解。
最优解的组成:
//v(i,j) = v(i-1,j); //第i个物品没有装
//v(i,j) = v(i-1, j-w(i))+v(i); //装了第i个物品