关于如何减小线段树常数
来源:互联网 发布:帝国cms投票系统 编辑:程序博客网 时间:2024/06/06 05:35
以前写线段树常数巨大,因为懒所以一直没改,今天终于下定决心把线段树常数调小
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标记就好
大致优化到了第3(顺便缅怀T掉的splay
1 0
- 关于如何减小线段树常数
- 如何减少线段树常数
- bzoj3110常数巨大的线段树套线段树......
- 如何减小NK大小
- 如何减小NK大小
- 如何减小NK大小
- 玲珑杯#3 G 1043 - G. Quailty and Square Counter【线段树-卡常数】
- UOJ #119. 【UR #8】决战圆锥曲线 线段树 暴力 剪枝 卡常数
- 关于WindowsAPI常数的值
- 如何减小PE的尺寸
- 如何减小可执行文件的大小
- 如何减小软件包的大小
- 如何减小apk的大小
- 如何减小VMware虚拟机硬盘空间
- ACM [NOIP2000] 单词接龙(水DFS枚举注意尽量减小常数)
- 【转】关于线段树
- 关于线段树
- 关于自然常数e的理解
- 学习笔记_Eclipse快捷键
- hive 的执行队列问题
- Adam学习之7代码kmer.scala完善(统计和SaveAsFile)
- 一些流水账
- 百度地图API简单实例
- 关于如何减小线段树常数
- iOS项目的Info.plist的一些设置mark
- IOS开发之修改UISearchBar的背景颜色
- 随着input里边值的变化而触发js事件
- ios 定位新功能----在程序中实现定位功能
- Solr 4.7.2 平台搭建(Solr发布到Tomcat6的详细配置)
- 按16进制打印显示一个字节数组的内容
- testng 失败自动截图
- 运用PARALLEL方式成倍提升Oracle数据分析效率