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,就不写了,很晚了,晚安!