标签:总结 数据结构 每个 qbxt2019.05 树剖 dfs 区间 重链 size
树链剖分,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、SBT、SPLAY、线段树等)来维护每一条链。
具体步骤:
第一遍dfs求出树每个结点的深度deep[x],其为根的子树大小size[x],以及每个点的父亲fa[x]。
第二遍dfs以根节点为起点,先dfs其儿子中size最大的儿子,相当于重边,之后dfs其它轻儿子。
在dfs的过程中求出每个节点的dfs序以及沿着重链向根最远到达哪个点,每条重链的dfs序就相当于一段区间,树上问题转化为区间问题。
根据不同题目使用维护区间的数据结构即可。
(以上摘自lyd课件)
标签:总结,数据结构,每个,qbxt2019.05,树剖,dfs,区间,重链,size 来源: https://www.cnblogs.com/water-lift/p/10809954.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。