week3|动态规划

按照动态规划法的求解步骤分析作业“算法第三章3(2026)”题目“7-4 最低通行费”:
1.1 根据最优子结构性质,列出递归方程式,说明方程式的定义、边界条件
最优子结构:由于题目要求步数要小于等于N-1,所以合法路径被时间约束强制化简为只能向右或向下。最优子结构:到达(i,j)位置是由上方(i-1,j)和左侧(i,j-1)。因此最优路径的前缀子路径必然也是该前面的最优路径

递归方程:(dp[i][j] = c[i][j] + min(dp[i-1][j],dp[i][j-1])

方程式定义:到达(i,j)的最少费用为本格费用+从上从左两种情况中的较小值

边界条件:1.i=0,j>=1 上方越界,只能从左边一路右移过来
2.j=0,i>=1 左方越界,只能从上边一路下移过来

1.2 给出填表法中表的维度、填表范围和填表顺序。以及原问题的最优值是哪个表格元素
维度:二维表,N*N

填表范围:整张表 i = 0…N-1、j = 0…N-1,共 N² 个状态,无一空缺;其中第一行、第一列按边界公式直接累加,内部格 i≥1 且 j≥1 用递推式填。

填表顺序:必须保证填 dp[i][j] 时 dp[i-1][j](正上方)和 dp[i][j-1](正左方)已经算出。
外层 i = 0 → N-1,内层 j = 0 → N-1,逐行从左到右;

原问题最优值:dp[N-1][N-1],即表右下角元素。
1.3 分析该算法的时间和空间复杂度
时间:表中 N² 个状态,每个内部格只做 1 次 min 比较和加法(常数次操作);两条边界也是 O (N);总操作量 ≈ N²,故 T(N) = O(N²)。
空间:需要 dp[N][N] 共 N² 个状态单元,另需存储费用矩阵 c[N][N],辅助空间同为 O(N²) 量级。

理解:
动态规划:在常常用在求解最优问题,通过列出递推式子,在进行填表。

posted @ 2026-11-03 11:21  Zero09  阅读(5)  评论(0)    收藏  举报