2017.06.05【NOIP提高组】模拟赛A组 & B组

T1:先找到能一步飞到n以后的最靠前的点,这个点以后的点都是最多两步就完成的,关键是处理这个点之前的点。

我们设f[i]表示第i个点的最小步数,g[i]表示第i个点一直往右跳的最小步数,那么g[i]=min(g[i+1...i+a[i]])+1,f[i]=min(g[1...i-1]+1,g[i+1...i+a[i]]+1,g[i])。


T2:这题要用dp。设f[i][1..4],1:(选10,下一个一定比它高),2:(选20,下一个一定比它高),3:(选20,下一个一定比它矮),4:(选30,下一个一定比它矮)。只需枚举第一棵树的高度,转移显然。在限定了高矮之后便可以做到无后效性,n为偶数又保证了正确性。

总结:

         1、当dp因为某个因素的不确定而导致后效性时,可以通过多增加一些状态来限定不确定因素,从而解决后效性。


T3:找规律+高精度。

第i个集合的长度=第i-1个集合的长度×2-3。

第i个集合的首个数字=2^i-1

第i个集合的第j个数字(j>1)=第i个集合的第j-1个数字+1

总结:

        1、以后做题时不能忽略程序结构这一步,程序结构越复杂就要写得越详细。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值