关于递归

递归的经典题目就是汉诺塔问题,从2个金片的转移,到n个金片(将上面n-1个看成是一个,相当于2个的情况)

 

另外,SDUTOJ上3479-青蛙过河问题,大概就是类似汉诺塔,两岸都是一个柱子,必须遵循汉诺塔规则,河里s个柱子和y片荷叶。不过s个柱子上是汉诺塔的柱子,但是y片荷叶上只能有站一个青蛙,并且出左岸不能回去,进右岸也不能回来,可以左岸直接跳到右岸,求能过去的最大青蛙数。其实归根到底,求的就是,能过去的最大的青蛙编号。

一开始没想递归去做,简单的想到了(s+1)(y+1),WA了之后,反应过来,可以在柱子上进行操作,让它堆得更高。

然后就去思考递归。

发现,没有柱子的时候,过去的数量必然是y+1。

有一个柱子,就可以让这个y+1,先存到柱子上,然后再过去y+1,然后再让柱子上的过去。

有两个柱子,就可以先存y+1个,然后再存y+1个,然后我们将原来编号小的那一组y+1,放到编号大的上面。于是,又可以存一组y+1,这时候,还能跳过去y+1,再挨个释放。即4*y+1。

注:这里存以y+1为一组,是因为,小了很亏,大了,在进行组合并的时候,需要先释放在荷叶上,再堆叠。

 

最后,记录一下二分查找。

在有序数组里查找,跳出的条件是左 > 右。每次取中点与结果进行对比,大了在右区间搜(mid+1,R),小了在左区间搜(L,mid-1)。二分枚举的是结果本身。

SDUTOJ-3916-上色的纱雾,是求分成m段能得到的最小的最大区间长度。

这道题当时没想过贪心,不过后来做区间覆盖想过二分枚举=w=。但是,并不可行,因为区间覆盖,求的是最小的m段区间长度和。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值