P5468 [NOI2019]回家路线 [斜率优化dp]

这篇博客探讨了如何使用斜率优化动态规划(DP)解决NOI2019中的回家路线问题。最初的想法是通过类似Spfa的方法转移状态,但空间复杂度过高。正解是通过枚举时刻进行DP,然后优化为时间队列,利用下凸壳和斜率优化降低复杂度至O(M)。实现部分详细解释了如何建立单调队列进行状态转移。
摘要由CSDN通过智能技术生成

回 家 路 线 回家路线 线


最 初 想 法 \color{blue}{最初想法}

D i s [ i , j ] Dis[i,j] Dis[i,j] 表示使用编号为 j j j 的边走到 i i i 节点的最小花费, 则

D i s [ t o , j ] = min ⁡ { D i s [ f t , i ] + A ∗ ( p j − q i ) 2 + B ∗ ( p j − q i ) + C } Dis[to, j]=\min\{Dis[ft, i] + A*(p_j-q_i)^2 + B*(p_j-q_i) + C\} Dis[to,j]=min{ Dis[ft,i]+A(pjqi)2+B(pjqi)+C}

使用类似 S p f a Spfa Spfa 的方法转移, 鉴于空间复杂度为 O ( N M ) O(NM) O(NM) 的, 只有 70 p t s 70pts 70pts.

代码 .


正 解 部 分 \color{red}{正解部分}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值