NOI2019 回家路线

传送门
参考博客

在某一条路线的终点下车后,是一个确定的时间,与前面的路线怎么走是无关的。所以可以以终止时间为线索考虑 D P DP DP
d p [ j ] dp[j] dp[j]表示最后走第 j j j号路线的最少消耗。那么对于所有的路线 i i i,如果路线 i i i满足: y [ i ] = x [ j ] , q [ i ] ≤ p [ j ] y[i]=x[j],q[i] \le p[j] y[i]=x[j],q[i]p[j],那么可以用路线 i i i按照下列方式更新 d p [ j ] dp[j] dp[j]
d p [ j ] = m i n ( d p [ j ] , d p [ i ] + A ∗ ( p [ j ] − q [ i ] ) 2 + B ∗ ( p [ j ] − q [ i ] ) + C ) dp[j]=min(dp[j],dp[i]+A*(p[j]-q[i])^2+B*(p[j]-q[i])+C) dp[j]=min(dp[j],dp[i]+A(p[j]q[i])2+B(p[j]q[i])+C)
考虑斜率优化。对于一个最优的转移路线 i i i,有如下式子:
d p [ j ] = d p [ i ] + A ∗ ( p [ j ] − q [ i ] ) 2 + B ∗ ( p [ j ] − q [ i ] ) + C dp[j]=dp[i]+A*(p[j]-q[i])^2+B*(p[j]-q[i])+C dp[j]=dp[i]+A(p[j]q[i])2+B(p[j]q[i])+C
d p [ j ] = d p [ i ] + A ∗ p [ j ] 2 + A ∗ q [ i ] 2 − 2 ∗ A ∗ p [ j ] ∗ q [ i ] + B ∗ p [ j ] − B ∗ q [ i ] + C dp[j]=dp[i]+A*p[j]^2+A*q[i]^2-2*A*p[j]*q[i]+B*p[j]-B*q[i]+C dp[j]=dp[i]+Ap[j

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值