您好、欢迎来到现金彩票网!
当前位置:彩63彩票app下载 > 割点 >

洛谷日报第46期]线段树的扩展之浅谈zkw线段树

发布时间:2019-05-14 05:26 来源:未知 编辑:admin

  我们观察一下递归式线段树的代码,很容易就会发现:无论是建树、修改还是查询,都是自顶向下的。

  visualgo生成的数组下标默认是从0开始的,所以线段树下的区间和原数组有错位,请注意区分(笔者懒得改了

  通过观察,我们发现一个规律:线段树对应叶子节点的下标和原数组的下标的差值是恒定的( 8-1=9-2==15-8=7 )

  我们分别在区间左端点-1和右端点+1的位置放两个指针(令其为s,t),就像这样:

  这里我们采用标记永久化的思想(就是不下推lazy tag让他彻底lazy下去QwQ)

  当然,这个版本也是可以单点修改/单点查询的,不过没有上述代码实用,所以这里就不讨论了

  先来看一看参赛选手:1号:递归线号:zkw线段树(非差分版本,差分版本的常数略大,就不测了)

  可以看到,没有O2时2号和3号相差无几,有了O2之后3号吊打全场可能是笔者写的zkw线段树常数太大QwQ

  为了防止zkw线段树被吊打得太惨反应算法真实水平以及模拟NOIp竞赛环境,下面就不开O2了

  保证所有输入数据在unsigned long long 范围内,结果对 2^{64} 取模,表格中的时间为平均值

  请不要吐槽这个渣配置QwQ(话说这个配置和CCF老爷机的配置应该差不多吧)

http://bed-plans.net/gedian/260.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有