题目链接:https://vjudge.net/contest/160930#problem/C
题目描述:给一个m * n 的图, 要求找一条从上到下的线使得权值和最小, 先只能向下左下, 下, 右下转移, 如果有多条, 输出最靠右的那条。
题目思路: 很明显的dp, dp(i, j)表示, 前i行经过a[i][j]的 最小的权值。
转移方程: dp(i,j) = min(dp(i-1,j-1), dp(i-1,j), dp(i-1,j+1)) + a[i][j];
由于要记录路径, 创建path数组, 在更新找到I-1行最小值的时候记录是从哪里来的。
题目代码:
#include #include #include #include #include #include
View Code 题目总结: 代码能力是真的不行, 加强我的代码能力以后。