Given N, M.
先确定objective 是value
先top-bottom, 考虑 i 与 i-1的关系
f[i][m]=max{f[i−1][m],f[i−1][m−wi]+vi}
再bottom-top来构建这个matrix,
先求 f[1][0:M]
再求 f[2][0:M]
再由于在递推公式中,m>wi, 所以其实只要求
先求 f[1][w_1:M]
再求 f[2][w_2:M]
就行
code
for(int i = 1; i< N; i++)
for(int j = w[i]; j < M; j++)
{
f[i][j] = max{f[i-1][j], f[i-1][j-w[i]] + v[i]}
}