pku2374 Fence Obstacle Course

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2374

题意简述:题意和pku1661几乎一样的,从最高层的某点,到最底层的0点,求最短横移路程。

解题思路:dp+线段树。这题的数据就是大了点,要不完全和pku1661的解法一样了。

对于这个问题,可以很快想到dp,并确定状态和方程,dp[i][0]和dp[i][1]分别表示从第i层的左右端点到达目的地的最短横移路程,方程显然很明显。

这里就需要找,从某个端点掉下去会落哪一层:线性扫描,O(n),再加上从底层到顶层的递推,总的时间复杂的就达到了O(n^2),这样的方法对于pku1661是可行的,但是对于现在这题就达不到可观的效率了。

于是优化,递推的那个过程ms是不能在优化什么了,于是考虑优化从某个端点落到哪一层。对于这个问题就是简单的线段树了,从底层的信息开始向线段树区间覆盖,接着统计覆盖颜色(即会落到哪一层),于是这个问题利用线段树的 插入+统计 就解决了。接着就是递推的过程了,直接dp好了。(ps:本blog一般不会再公布代码了,解题思路有了,自己就可以写代码了,有问题可以留言,24小时内给以回复解决。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值