线段树乱写
时间:2021-08-11
本文章向大家介绍线段树乱写,主要包括线段树乱写使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一个常用的数据结构
线段树维护单调栈
例题:God Knows , 牛半仙的妹子序列..
亦可以看作是维护极长上升子序列..右边先行..
线段树区间查询
大多部分线段树均是查询\(tr[x].l\geq ql\ and\ tr[x].r\leq qr\)便停止。
但是有一部分题目并不是查询到这个条件就停止,
例如:矩形(noip模拟35),一个比较明显的扫描线,
因为从未写过区间信息不满足时就停止下访,
于是便错误地合并了一些信息..
但是对于一些有特殊性质的题目,可以选择到达区间后,将区间信息下传给子区间,
然后再将子区间的答案统计一下,
这样的常数可能稍大,但并不是剧烈地影响时间复杂度..
另外不要写成: (一个过于低级的错误了..)
\[if(ql \leq mid)\ sum+=query(x<<1); \]\[else\ return\ sum+=query(x<<1\ |\ 1); \]
第二行要写成:
\[if(qr>mid)\ sum+=query(x<<1\ |\ 1); \]
线段树区间合并信息
经典的一道题:山海经..
在更大的区间\(pushup\)即可..
线段树解决高维偏序问题
解决二维偏序问题,有些类似权值线段树,亦可使用树状数组解决..
解决三维偏序问题,可以选择CDQ分治,也可以选择使用树套树..
其实也并非全部都是真正意义上的树套树,亦可以将元素存储在区间节点上,同样是上面的的题目'矩形',可以将三维偏序降低为二维偏序,而方法就是在节点上开了一个\(set\)维护..
原文地址:https://www.cnblogs.com/AaMuXiiiiii/p/15130049.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- smtplib bcc 密送 失败解决方案
- python sys.stdout
- 【8】进大厂必须掌握的面试题-Java面试-异常和线程
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
- 在网页中动态的生成一个gif图片
- 在 Visual Basic .NET 或 JScript 代码中使用早期绑定
- 腾讯云TKE-GPU案例: TensorFlow 在TKE中的使用
- 使用pyppeteer 下载chromium 报错 或速度慢
- layui数据表格自定义每页条数limit设置
- dotnet OpenXML 幻灯片 PPTX 的 Slide Id 和页面序号的关系
- springboot 国际化
- Windows/Android/iOS全平台支持的视频播放器EasyPlayerPro,iOS版播放无音频问题如何解决?
- java之springboot之快速入门(一)- maven方式创建项目
- java之springboot之快速入门-Spring Initializr方式创建项目
- springboot之Web综合开发