题目链接:10564 - Paths through the Hourglass
题目大意:给出一个沙漏形状的2(n - 1)行矩阵,并给出一个总全值和每个坐标的权值,每个位置可以走向下一行与它相邻的两个或一个位置(参见题目中的图),请找出有多少调路径上的权值和等于给定的总权值,并输出字典序最小的一条路径的起始位置 和方案。
解题思路:就是数字三角的进化版, 只是本题需要记录每个点所有能出现的情况,所以开一个三维数组,dp[i][j][k]表示在i,j这个位置权值和为k的走法有多少种,状态转移公式dp[i][j][k] = dp[i+1][j][k - num[i][j]] + dp[i + 1][j + 1][k - num[i][j]](注意上三角和下三角的坐标关系是不同的,上三角是j - 1,所以要考虑j>0),然后就是递归打印路径。