uva 10564 - Paths through the Hourglass(dp)

该博客主要介绍了UVA 10564题目的解题思路,这是一个关于寻找沙漏形状矩阵中权值和等于给定值的路径问题。解题方法采用动态规划,通过一个三维数组记录每个位置不同权值和的路径数。状态转移方程为dp[i][j][k] = dp[i+1][j][k - num[i][j]] + dp[i + 1][j + 1][k - num[i][j]],并递归打印字典序最小的路径起始位置和方案。
摘要由CSDN通过智能技术生成

题目链接: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),然后就是递归打印路径。



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值