传纸条:看似很巧实则套路

博客详细介绍了P1006 [NOIP2008 提高组] 传纸条问题的解题思路,采用动态规划(DP)方法优化为三维空间,通过记忆化搜索避免重复计算,探讨了子问题的四种情况并用循环解决,揭示了问题建模的巧妙之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P1006 [NOIP2008 提高组] 传纸条

题目地址

分析:

此题可以用搜索但是判断两条路有没有重叠是有一点小麻烦的,本人直接切正解:DP
我们排两个哨兵从左上走到右下,两条路去探索。这样的话,dp应该是四维的,分别记录两个点的坐标:
f [ x 1 ] [ y 1 ] [ x 2 ] [ y 2 ] f[x1][y1][x2][y2] f[x1][y1][x2][y2] 存的是最大好感度
但我们又可以省一维。
因为两个指针的横纵坐标之和是一定的。因为每次只能向下或向右走,所以每次不是横坐标+1,就是纵坐标+1,也就是说对于每个哨兵,每次总是横纵坐标之和+1。因为他们都是从 ( 0 , 0 ) (0,0) (0,0)出发,所以他俩的和永远是相同的。假设这个和是p,我们只要知道其中两个点的横坐标,就能分别求出他们的纵坐标
y 1 = p − x 1 y1=p-x1 y1=px1
y 2 = p − x 2 y2=p-x2 y2=px2
所以四维DP可以优化成三维:
f [

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值