如何减少线段树常数
来源:互联网 发布:python 字符串方法 编辑:程序博客网 时间:2024/06/07 18:43
以前写线段树常数巨大,因为懒所以一直没改,今天终于下定决心把线段树常数调小
0.位运算,前置技能
1.非递归是一定要有的,以前觉得非递归特别特别麻烦,今天写了一下发现比递归好写
2.不要一直改变l,r,能在build时记录下来就不要每次更新了
3.能从下往上修改就从下往上吧
4.线段树不管什么地方,加一句话常数都会变大,如果是加个函数就更大了
比如说我们会记录最大值
mx[now]=max(mx[now<<1],mx[now<<1|1])
这样慢哭
改成
if(mx[now<<1]>mx[now<<1|1])mx[now]=mx[now<<1];
else mx[now]=mx[now<<1|1]
会快很多
5,update写成宏
6.其实这点很重要:能调用两次线段树能解决的问题绝不调用三次
举个例子,我要询问k大和删除k大,我可以边跑边修改,这样少调用一次
7,永久标记多了会特别特别慢,谨记
8,其实有时候不用记录当前询问区间
什么意思呢,比如我要询问k大 ,那么不用记录当前的l和r,一路询问下来,在叶子打一个return标记就好
哎呀呀 看到了这个,想哭也想不出来!!!
1 0
- 如何减少线段树常数
- 关于如何减小线段树常数
- bzoj3110常数巨大的线段树套线段树......
- hdu 4027 线段树 + 减少重复计算
- 玲珑杯#3 G 1043 - G. Quailty and Square Counter【线段树-卡常数】
- UOJ #119. 【UR #8】决战圆锥曲线 线段树 暴力 剪枝 卡常数
- 如何减少测试工作量
- 如何减少bug
- 如何减少可执行文件大小?
- 如何减少换页错误
- 如何减少BUG
- 如何减少换页错误?
- 如何减少返工工作量?
- 如何减少bug
- 如何减少换页错误
- 如何减少换页错误?
- 如何减少返工工作量?
- Unity 如何减少DrawCall
- NOIP2004【虫食算】
- 文本分类的python实现-基于SVM算法
- 树莓派Raspbian更新全新UI界面PIXEL(升级方法)
- 安装react-native命令和创建
- 升级到ubuntu14.04后terminator字体出问题
- 如何减少线段树常数
- IT学习资源下载
- JavaWeb之Servlet&网络访问服务器编程
- Android AsyncTask 源码解析
- robotium原理之获取WebElement元素
- 一些前端开发经典书籍推荐和下载链接分享
- hdu4614 Vases and Flowers 二分
- Caffe学习系列(12):训练和测试自己的图片
- Python 名字空间