线段树,总结

线段树,总结

ID:30357040

大小:22.64 KB

页数:16页

时间:2018-12-29

线段树,总结_第1页
线段树,总结_第2页
线段树,总结_第3页
线段树,总结_第4页
线段树,总结_第5页
资源描述:

《线段树,总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划线段树,总结  [PKU2777]线段树(一){概述基本操作}  {  以前写的线段树都是零碎  而且描述的也不清楚  最近打算整理一下  就从我的第一个线段树程序开始吧  }  线段树Segment_tree  网上有人把线段树翻译成Interval_Tree  Interval_Tree是另外一种数据结构而且并非二叉树  这个是线段树的标准E文翻译  可以看wikipedia的原文http:///

2、wiki/Segment_tree  顾名思义线段树存储的是连续的线段而非离散的节点  先看一张经典的线段树图解  这个就是标准的线段树  既然是树形结构我们就得先考虑怎么存储这棵树  分析线段树的定义  *线段树是一棵二叉树记为T(a,b)  *参数a,b表示区间[a,b]其中b-a称为区间的长度记为L目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的

3、业务技能及个人素质的培训计划  *线段树T(a,b)也可递归定义为  -若L>1[a,(a+b)div2]为T的左儿子  [(a+b)div2,b]为T的右儿子  -若L=1T为叶子节点  可以得到一些基本性质  *线段树除最后一层外是满二叉树  *线段树是平衡的高度是Log2L左右  如此我们有2种存储方法  *直接用指针  定义节点  typenode=record  ls,rs:^node;  l,r:longint;  end;  其中lsrs分别为左右儿子l,r是区间的范围  真正实现时一般用数组模拟

4、指针  我们只需定义longint数组ls[]rs[]l[]r[]  *用*2和*2+1代替左右儿子指针  由于是除最后一层外是满二叉树  我们可以向存储堆一样存储线段树  用l[]r[]来存储节点区间范围  x的左右儿子分别就是x*2和x*2+1目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  具体实现用位移代替乘2  

5、这样乘法指针运算和上述数组调用一样几乎不需要时间  具体用哪种纯粹是个人喜好没什么区别  (下文中我的程序都是用的数组模拟直接存储儿子指针)  接下来讨论线段树的具体操作  也就是维护这种数据结构的算法(srO数据结构+算法=程序Orz)  总结起来就两个词递归&分治  结合一个具体问题吧PKU2777  【问题描述】  一个有L个格子的染色板,每个格子编号为1,2,3……L,每个格子初始都染成了1号色。一共有T种不同的颜色,编号分别为1,2,3……T。可进行O次操作。对染色板的操作有2种。  C(a,b,c)

6、意思是将染色板中编号为a~b的所有格子染成c号色(1≤a≤b≤L,1≤c≤T)  P(a,b)意思是查询染色板中编号为a~b的格子染成的颜色种数。(1≤a≤b≤L)  【输入】  第一行有三个正整数,分别为L,T,O。  接下来有O行,每行为Cabc或Pab。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  【输出】  输

7、出有若干行,分别回答输入中每个查询的结果。  【样例输入】  645  C122  C233  P13  C364  P16  【样例输出】  2  3  【数据规模】  1≤L≤100,0001≤T≤301≤O≤100,000  这是线段树的入门题相当经典  要求程序实现一个涂色的程序  支持对区间[A,B]涂C的颜色和统计区间[A,B]的颜色种类  朴素的做法是用数组a[]存储下整个区间[0,]  然后循环涂色循环查询这样的复杂度是N*N大大地TLE  我们考虑用线段树处理这个区间问题  首先我们得建树目的

8、-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  先看程序  1procedurebuild(a,b:longint);  2varx,mid:longint;  3begin  4inc(tt);x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。