- 2
- 0
- 约1.24万字
- 约 9页
- 2019-03-13 发布于江苏
- 举报
IOI2004 国家集训队论文 林涛
线段树的应用
广西柳铁一中 林涛
摘要】
在竞赛解题中,常遇到与区间有关的操作,比如统计若干矩形并的面积,记
录一个区间的最值、总量,并在区间的插入、删除和修改中维护这些最值、总量。
线段树拥有良好的树形二分结构,能够高效的完成这些操作,本文将介绍
线段树的各种操作以及一些推广。
本文通过3 个例子:《蛇》、《空心长方体》、 《战场统计系统》,讲述线
段树中基本的插入、删除、查找操作,和不规则的修改和删除操作,以及到二维
的推广。
关键字:线段树 二分 子树收缩 叶子释放 面积树
正文】
1. 线段树的定义及特征
定义1:线段树
一棵二叉树,记为T (a,b) ,参数a,b 表示该节点表示区间[a,b] 。区间的长度
b-a 记为L 。递归定义T[a,b] :
若L1 :[a, (a+b) div 2]为 T 的左儿子
[(a+b) div 2,b]为T 的右儿子。
若L=1 :T 为一个叶子节点。
表示区间[1, 10] 的线段树表示如下:
[1,10]
[1,5] [5,10]
[1,3] [3,5] [5,7] [7,10]
[1,2] [2,3] [3,4] [4,5] [5,6] [6,7] [7,8] [8,10]
[8,9] [9,10]
( 以下取对数后均向上取整)
定理1:线段树把区间上的任意一条线段都分成不超过2logL 条线段
证明:(1)在区间(a ,b) 中,对于线段(c,d) ,如果(c=a) 或 (d=b) ,那么线段在
(a ,b) 中被分为不超过log(b-a) 。
用归纳法证明,如果是单位区间,最多被分为一段,成立。
如果区间(a ,b) 的左儿子与右儿子成立,那么如果当c=a 时,
1.若d=(a+b)div2 那么相当与其左儿子分该线段,所分该线段数树不
超过log((a+b)div 2-a) ,即不超过log(b-a),成立。
第 1 页 共 9 页
IOI2004 国家集训队论文 林涛
2 .若d(a+b) div 2 那么相当于该线段被分为它左儿子表示的线段,加
上右儿子分该线段,线段数不超过 1+log(b-(a+b) div 2),也不超过
log(b-a) ,成立。
对于d=b 的情况证明类似,不再赘述。
(2)在区间(a,b) 中,对于任意线段也用归纳法证明。
对于单位区间,最多分为一段,成立。
若(a ,b) 的左儿子与右儿子均成立,则对于线段(c,d)
1.若 d=(a+b)div 2 则该区间所分该线段等于其左儿子区间所分该
线段,线段数小于log((a+b) div 2-a)2log(b-a),成立。
2 .若c(a+b) div 2 则该区间所分该线段等于其右儿子区间所分该线
段,线段数小于log(b-(a+b) div 2)2log(b-a) ,成立。
3 .若1、2 均不成立,则此线段在左儿子区间分该线段满足dV.Lson.b,
分该线段数不超过log(b-(a+b) div 2) ,而在
您可能关注的文档
最近下载
- 2025年轻型民用无人驾驶航空器安全操控(多旋翼)理论备考试题及答案.docx
- 《煤矸石集料在制备建筑砂浆中应用指南》.docx VIP
- 高中语文文言文300实词+18虚词.pdf VIP
- 2023-2014年生猪养殖行业(申万Ⅲ)比率、现金流、发展、盈利、经营、偿债能力均值.doc VIP
- 无人机飞行管理.pptx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
- 林业标准地调查表格.docx VIP
- 2026年高考第一次模拟考试:地理一模突破卷01(新高考全国通用)(考试版).docx VIP
- 标准地调查方法与原则.pptx VIP
- 专题03功能中的图像问题(共12种图像类型)讲义-2025版高考物理图像专题.pdf VIP
原创力文档

文档评论(0)