ssoj4027: 挖煤(coal)

本文探讨了一个涉及DP算法的复杂问题,通过从后往前计算并压缩状态空间,将原本的O(N^3)复杂度降低到O(N)。该方法通过调整计算方向,避免了重复计算,实现了高效求解。

题意:有n个点,有一个初始值p=w,要从一号点按顺序走到n号点,每个点有两个值:op、a,若op=1,则可收获pa的价值,但要使p=b(0=<b<1);若op=2,则可花费pa的代价将p=c(1<c<=2),求最大收益。
n<=1e5
题解:
考场思路:考虑DP,我们关心的状态为走到哪个点,当前的p为多少,而p用选择1、2的次数表示比较方便,故列出三维的DP,但这要O(N^3)。
考虑如何将选择1、2的次数压掉,发现正向做,每一次选择都会影响后面所有的点,这样记录很浪费。既然会影响后面所有的点,那么若从后往前做,每次选择都将当前的值×b或c,这样就只需记录一维了,效率O(N).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值