OpenJudge2.6基本算法之动态规划9267:核电站

本文解析了OpenJudge2.6中的动态规划问题9267核电站的解法,涉及三种关键情况:区间全放不炸、区间内放与不放、区间接合放炸的处理。通过代码实例展示了如何利用状态转移方程求解,适合初学者理解动态规划应用。
摘要由CSDN通过智能技术生成

OpenJudge2.6基本算法之动态规划9267:核电站

题目传送门
这题和放苹果挺类似的,都是要分情况讨论i和m的大小关系
case1:如果i<m
这说明在这段区间里怎么放都不会炸,那么状态转移方程就是:a[i]=2*a[i-1].(乘2是因为每个坑有放和不放两种情况)
case2:如果i==m
情况同case1,只是要减去区间全放(会炸)的情况,那么状态转移方程就是:a[i]=2*a[i-1]-1.
case3:如果i>m
这是就要考虑会炸的情况了。我们采用减法的方式——即从总情况里减去会炸的情况。
如果第i位是不能放的,那么说明i-m这段区间肯定全放了,而且i-m-1这一位一定是0,因为如果该为是1的话就会在之前被处理掉,所以如果i为不能放,那么i-m-1这段区间的所有可能都需要从答案里减掉。那么状态转移方程就是:a[i]=2*a[i-1]-a[i-1-m]
在这里插入图片描述

AC代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值