[BZOJ1047][HAOI2007]理想的正方形(二维ST表)

传送门


昨晚回宿舍路上Rose_max肉老师做完了这道题问我怎么做,我这么辣鸡怎么可能会做嘛。。
然后我就说:二维线段树模版题(事实上我不会写二维线段树。。)
肉老师听完,淡淡的一笑:“太不优秀了。。”
然后我想啊想,也没有想到除了二维数据结构之外的方法。
然后肉老师又淡淡一笑:“二维ST表”
然后他转身而去,留下一个背影,我在风中惘然。
对啊,二维st表。

哈哈事实上为什么可以用二维st表呢,因为我们发现a,b<=1000并且并没有修改操作,然后他是一个RMQ问题。那么st表不就很优秀吗??不懂st表的同学,可以去看一下hanks_o的博客,二维st表的话就设f[i][j][k]为(i,j)向右向上2^k的正方形的最小最大值,然后更新即可,注意这题如果是长方形就不可做了,因为要开 N2log2N N 2 l o g 2 N 的空间也就是一个亿啊,会爆的。。

一开始RE了,不知道为什么,后来找hanks_o欧老师来帮我看代码,他把

for(int k=1;(1<<k)<=min(A,B);k++)

改成


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值