第三章作业:动态规划
1.1、递归方程式:dp[i][j]=min(dp[i−1][j], dp[i][j−1])+a[i][j];方程定义:到达 (i,j) 的前一步只能来自上方 (i-1,j) 或左方 (i,j-1);边界条件:dp[1][1]=a[1][1],行从左,列从上;
1.2、表的维度: 二维表 dp[1..n][1..n];
填表范围: 所有格子 (i,j),其中 1 ≤ i ≤ n,1 ≤ j ≤ n;
填表顺序: 按行优先,从左到右、从上到下依次计算;
最优值:dp[n][n];
1.3、时间复杂度:O(n²);空间复杂度:O(n²);
2、动态规划的核心思想是把一个复杂问题拆成若干重叠的子问题,先求出子问题的最优解,再利用这些子问题解构造原问题的最优解。做这类题目时,最关键的是先明确状态的含义,也就是 dp[i][j] 到底表示什么;然后再分析状态如何转移,即当前状态可以从哪些前驱状态得到;最后确定边界条件和计算顺序。

浙公网安备 33010602011771号