算法第三章作业

1.1 递归方程式和边界条件
设 a[i][j] 为格子费用,dp[i][j] 为从 (1,1) 走到 (i,j) 的最小费用。
dp[i][j]=a[i][j]+min(dp[i−1][j],dp[i][j−1])
边界:
dp[1][1]=a[1][1]
第一行:
dp[1][j]=dp[1][j−1]+a[1][j]
第一列:
dp[i][1]=dp[i−1][1]+a[i][1]
1.2 表的维度、填表范围、顺序和最优值
表维度:二维表
dp[N][N]
填表范围:
i=1…N, j=1…N
填表顺序:从上到下、从左到右
原问题最优值:
dp[N][N]
样例结果为:
109
1.3 复杂度
时间:
O(N^2)
空间:
O(N^2)
2、理解与体会
动态规划就是把大问题拆成小问题,并保存小问题的最优解。本题中,到达某个格子的最小费用只取决于它上方和左方的格子,所以按顺序填表即可。关键是写对状态转移方程和第一行、第一列的边界。

posted @ 2026-11-03 23:12  1003231  阅读(4)  评论(0)    收藏  举报