把二维按行列分解然后dp。
dp[i][0]表示不取第i个能到的最大值
所以dp[i][0] = Max(dp[i-1][0],dp[i-1][1]);
dp[i][1]表示取第i个能到的最大值
_所以dp[i][1] = _dp[i-1][0]+value[i];__
row[i]记录下每一行的最优情况,然后再按照上面的方法进行dp
1 |
|
把二维按行列分解然后dp。
dp[i][0]表示不取第i个能到的最大值
所以dp[i][0] = Max(dp[i-1][0],dp[i-1][1]);
dp[i][1]表示取第i个能到的最大值
_所以dp[i][1] = _dp[i-1][0]+value[i];__
row[i]记录下每一行的最优情况,然后再按照上面的方法进行dp
1 | #include <stdio.h> |