滑雪 算法精析 动态规划

博主分享了自己在保研笔试失利后决定深入研究ACM的心路历程,重点探讨了动态规划在解决滑雪问题中的应用。通过dp数组表示不同坐标上的最长滑坡,并给出了递归表达式的详细说明。博主在调试过程中发现,可以先找出矩阵中某些点的高度低于周围点,以此为基础求解其他点的dp值。文章附带了经过修改的易懂代码。
摘要由CSDN通过智能技术生成

       本人刚接触acm,是在保研笔试的严重失利下,决心要好好研究一下acm。下面便是我的一些体会。

       题目不再描述。

       首先用dp数组dp[i][j]表示i,j坐标的最长滑坡,用matrix二维数组表示各点高度

       递归表达式:dp[i][j]={max{dp[i-1][j],dp[i+1][j],dp[i][j-1]dp[i][j+1]}+1 ,i-1>=0,i+1<row,j-1>=0,j+1<col},其实这个式子不太标准,例如只有matrix[i][j]>dp[i-1][j]时,dp[i-1][j]才有资格参与比较,其它位置类似。

      我当时比较困惑的是最初的dp值怎么求得,然后就单步调试最后明白了,矩阵中肯定存在某些点,这些点比四周的点都小,所以直接就可求出这些点的dp值为1,然后以这些点为基础就可求出其它点的dp值

     下面是我在网上找的我觉得比较容易理解的代码,稍加了改动,为了便于调试,直接赋予的数组值:

    

#include<stdio.h>
#incl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值