题目描述:
给出一个m*n(m<=10,n<=100)的矩阵, 从第一列的某一位置出发, 每次向右,右上或右下走一格, 最终到达最后一列, 整个矩阵是环形的, 要求经过的整数和最小, 输出最优解及路径所经过的行号
思路:
多段图dp
因为要求路径, 所以设d(i,j)为以(i,j)为起点的最短路径和, 用nxt(i,j)表示路径上下一列的行号
则答案为min{d(k,1)}(1<=k<=n)
状态转移方程见代码
代码:
1 |
|
给出一个m*n(m<=10,n<=100)的矩阵, 从第一列的某一位置出发, 每次向右,右上或右下走一格, 最终到达最后一列, 整个矩阵是环形的, 要求经过的整数和最小, 输出最优解及路径所经过的行号
多段图dp
因为要求路径, 所以设d(i,j)为以(i,j)为起点的最短路径和, 用nxt(i,j)表示路径上下一列的行号
则答案为min{d(k,1)}(1<=k<=n)
状态转移方程见代码
1 | #include <iostream> |