ACWING算法提高课-动态规划
- 摘花生
- 思路:到达某一个位置(x, y)的方法只有两种,第一种是从(x, y - 1),即从左方抵达,第二种是从(x - 1, y),即从上方抵达。
- 状态表示:f[i][j]表示抵达位置(i , j)时的总花生数。
- 状态转移:f[i][j] = x[i][j] + max(f[i - 1][j], f[i][j - 1]);
- 最低通行费
- 思路:需要尽快并且费用最少,那么最优策略就是不断地向右下移动,即到达(x, y)的前一时刻位置只有(x, y - 1)、(x - 1, y)两种。
- 状态表示:f[i][j]表示抵达位置(i, j)时的总花费
- 状态转移:
- 当处于最左方时,f[i][j] = x[i][j] + f[i - 1][j];
- 当处于最上方时, f[i][j] = x[i][j] + f[i][j - 1];
- 当处于中间时,f[i][j] = x[i][j] + min(f[i - 1][j], f[i][j - 1]);