福州培训日志之回溯 深度优先搜索(2月5日)

  2月5日,在福州正式培训。

 早上讲专题,下午测试,排进前十(0分的实在太多了,并列的也就多了),完美爆0!

 初次体会出差的感受,今天是有史以来第一天。

这十多个小时已经明白的告诉我们接下来的日子将要多么努力,这几天是多么重要。

刘老师说:“现在的辛苦换来高中的轻松。”

所以我会期待,我会准备,我会执行。

咳咳,切入正题:

先来说说枚举吧:

枚举:

1.保证最优解和或全部的可行解都被枚举到

2.枚举量不能过大

3.没有三了,可能是我的手速跟不上老师的速度,emmm,剩下只能自己参考黑皮书了

 

来例题!

NO.1 01矩形

      大意:

       有0和1组成的矩形,从中找到内部都为1的最大矩形,嗯哼,就这样。

       

1.枚举矩形左上角和有下角,再进行扫描                时间复杂度0(n的4次方)因为不会打平方所以就用文字了,请见谅

2.枚举矩形上下两边,扫描内部每列(假设是c[i])是否为1    时间复杂度0(n的三次方) 也就是0(n的二次方)*0(n)

优化了耶!

NO.2 魔法阵

emmm莫名的不想说题目

就是有很多(n)个礼物呀,不过不是给我的嘛,这些礼物都有自己的魔法值,要在这些礼物中找到礼物A,B,C,D魔法值为xa,xb,xc,xd满足

 1.xa<xb<xc<xd

2.2(xd-xc)=xb-xa<(xc-xd)/3

问有多少组?

配个图:

 

 

 

 

 

由题可知i=n/9

设t[xa]为2i的选择个数

r[k]为在xc>=k后i的选择个数(1.xc>=k 2.xd-xc=i)

t[xa]*r[xb+6i+1]:确定xb,xa有t[xa]种选择(1.xd-xc=i  2.xc>=xb+6i+1)xc,xd 有r[xb+6i+1]对

代码,我就不打了,来的打,问题是我熬夜,好困啊!!!

递归回溯:

1.判断当前是否为所要的状态,根据所需进行处理或回退

2.在当前状态上枚举所有合法方向,取某一个尝试方向,没有则退出

3.等等

例题:

有且只有一题

二十四点;

上图:

 

                

附:

(5+6)/(3-2)

前序:/+5 6 - 3 2

后序:5 6 + 3 2 - /

接下来的基本没太懂,so,就不写了,很晚了,晚安!

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值