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=p−x1
y 2 = p − x 2 y2=p-x2 y2=p−x2
所以四维DP可以优化成三维:
f [ p ] [ x 1 ] [ y 2 ] f[p][x1][y2] f[p][x1][y2<

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

被折叠的 条评论
为什么被折叠?



