- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二分统计与线段树.ppt
简介 一定范围内计数问题特点: 1 描述简单 2 要求对数据动态维护,动态计算 解决手段:特殊的统计模式和结构 线段树 动态处理可以映射在一个坐标轴上的一些固定线段,例如求并区间的总长度,或者并区间的个数等等。 优点:随时插入一个区间或删除一个已有区间,并同时用低耗费维护需要的性质。 线段树-构造思想 下图显示了一个能够表示[1,10]的线段树: 线段树-动态数据结构 线段树-静态数据结构 用数组B[],E[],C[],LSON[],RSON[]。设一棵线段树的根为v。那么B[v],E[v]就是它所表示区间的界。C[v]用来作计数器。LSON[v],RSON[v]分别表示了它的左儿子和右儿子的根编号。 线段树-建树 从根对应的区间[a,b]出发,每次分成两个部分,分别建立对应的左右子树,直到面临一个初等区间[x,x+1]。 线段树-插入删除线段 将区间[c,d]插入线段树T(a,b),并设T(a,b)的根编号为v procedure INSERT(c,d;v) Begin mid=(B[v]+E[v]) div 2; if c≤B[v] and E[v]≤d then C[v] ← C[v]+1 else if c<mid then INSERT(c,d;LSON[v]); if d>mid then INSERT(c,d;RSON[v]); end 线段树-一个特殊性质举例 要得到线段树上线段并集的长度,增加一个数据域 M[v],讨论: C[v]>0,M[v] = E[v]-B[v]; C[v]=0 且v是叶子结点,M[v]=0; C[v]=0 且v是内部结点,M[v]=M[LSON[v]]+M[RSON[v]]; 线段树-变形,对点统计 [例一] 一位顾客要进行n(1≤n≤5000)天的购物,每天他会有一些帐单。每天购物以后,他从以前的所有帐单中挑出两张帐单,分别是面额最大的和面额最小的一张,并把这两张帐单从记录中去掉。剩下的帐单留在以后继续统计。输入的数据保证,所有n天的帐单总数不超过1000000,并且每份帐单的面额值是1到1000000之间的整数。保证每天总可以找到两张帐单。 建立点线段树,范围是[1,1000000],即每种面额的帐单设为一个叶结点。 如果C[LSON[v]]>0,那么树v中的最小值一定在它的左子树上。 如果C[RSON[v]]>0,它的最大值在右子树上; 一种静态统计方法 [例二]IOI2001 MOBILES : 在一个N*N的方格中,开始每个格子里的数都是0。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子矩阵(x1,y1)-(x2,y2)中所有元素的和;修改的规则是指定某一个格子(x,y),在(x,y)中的格子元素上加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。1≤N≤1024,提问和修改的总数可能达到60000条。 一维序列求和 设序列的元素存储在a[]中,a的下标是1..n的正整数,需要动态地更新某个a[x]的值,同时要求出a[x1]到a[y1]这一段所有元素的和。 对于序列a[1..n],我们设一个数组C[1..n],C[i]=a[i-2k+1]+…+a[i],其中k为i在二进制下末尾0的个数 1001010110010000 k =4 计算C[x]对应的2k LOWBIT(x) 2k =x and (x xor (x-1)) 修改一个a[x]的值 与哪些C相关? 例如x=76=(1001010)2,从形式上进行观察,可以得到: p1= 1001010 p2= 1001100 p3= 1010000 p4= 1100000 p5 修改C[p1],C[p2],… procedure UPDATA(x,A) begin p←x while (p<=n) do begin C[p]←C[p]+A p←p+LOWBIT(p) end end 维护的费用:logn 求a[1]-a[x]的和 function SUM(x) begin ans ← 0 p ← x while (p>0) do begin ans←ans+C[p] p←p-LOWBIT(p) end return ans end 推广为原来的二维问题,把C构造成 C[x,y],其每一维定义与原来相同。 推广后算法:两层嵌套,一次维护费用为O(log2n) 静态二叉排序树实现 集合{
您可能关注的文档
- 中华人民共和国海关企业分类管理办法.ppt
- 中华国钞.ppt
- 中南大学数学院计算机操作系统第八章课件分布式与网络操作系统.ppt
- 中南大学网络技术与应用课件网络互连.ppt
- 中南财经政法大学高级财务会计.ppt
- 中国专利检索.ppt
- 中国个人收入分配现状原因与对策.ppt
- 中国人失掉自信力了.ppt
- 中国农业巨灾保险的必要性论证及建设性构想PPT.ppt
- 中国古代史第二讲.ppt
- 班级元旦晚会策划书 班级元旦晚会策划书4篇.doc
- 班会会议记录格式及 班会会议记录(实用【7篇】.doc
- 认真学习《中国共产党纪律处分条例》PPT党的六大纪律课件.pptx
- 党纪学习教育PPT新修订的《中国共产党纪律处分条例》解读课件.pptx
- 关于严明党的纪律和规矩的重要论述PPT课件.pptx
- 2024年国九条PPT关于加强监管防范风险推动资本市场高质量发展的若干意见课件.pptx
- 2024干部一定要知敬畏存戒惧守底线PPT相关重要论述课件.pptx
- 推动经济实现质的有效提升和量的合理增长PPT学习教育课件.pptx
- 2024坚持“四步联动”做实党员教育工作PPT新时代党员教育工作课件.pptx
- 权威解读《关于加强社区工作者队伍建设的意见》PPT课件.pptx
1亿VIP精品文档
相关文档
最近下载
- 云南省砚山县民族中学高中部教学楼1#工程施工图预算与文件编制与研究.docx
- 国开2023年生产与运作管理形考1-4答案.pdf VIP
- 电路分析简明教程第三版傅恩锡习题答案.docx
- 第3章物流系统网络结构规划设计.pptx
- (PEP)人教版五年级下册英语Unit 4《When is the art show》课件.pptx
- 中考历史复习方案第02篇专题01中国古代的政治经济史课件.pptx
- 国家开放大学《液压与气压传动》实验报告5参考答案.doc
- 小班音乐律动《我的身体会响》PPT课件.pptx VIP
- L13S2给水图集_标准图集.pdf
- DB23_T 3276-2022 老年人综合评估室建设规范.docx
文档评论(0)