Heavy Light Decomposition】的更多相关文章

Note 1.DFS1 mark all the depth mark fathers mark the heavy/light children mark the size of each subtree void dfs1(long long pos, long long f, long long depth){ dep[pos] = depth; fat[pos] = f; sz[pos] = 1; long long maxi = -1; for (long long v : adj[p…
树链剖分(Heavy Light Decomposition, HLD)是一种将对[树上两点间的路径]上[边或点]的[修改与查询]转化到[序列]上来处理的方法. 目的:将树的边或点转化到一个线性结构(序列)上.方法:1. 将节点u到其所有子节点{v}的边分成一条『重边』和余下的若干条『轻边』.2. 如何把各边顺次连接成一条链:特殊的『边DFS序』————v的『父边』的后继是v的重『边』.3. 如何将对『树上路径』的修改操作转化到线性结构上:按2.的转化方法,重链上的边在序列中是连续的.更进一步,…
参考资料 https://www.cnblogs.com/zhoushuyu/p/9069164.html https://www.cnblogs.com/candy99/p/dsuontree.html https://www.cnblogs.com/zcysky/p/6822395.html 简介 树上启发式合并 用到了heavy−light decomposition树链剖分 把轻边子树的信息合并到重链上的点里 因为每次都是先dfs轻儿子再dfs重儿子,只有重儿子子树的贡献保留,所以可以保…
题意: 给出两棵树,每棵树的节点都有一个权值. 同一棵树上的节点的权值互不相同,不同树上节点的权值可以相同. 要求回答如下询问: \(u_1 \, v_1 \, u_2 \, v_2\):询问第一棵树的路径\(u_1 \to v_1\)的节点权值 与 第一棵树的路径\(u_2 \to v_2\)的节点权值的交集的大小. 分析: 通用的思路是这样的:首先解决线性区间上的问题,然后用树链剖分来将树上问题转化为线性问题. 考虑两个序列之间求交集:给出两个序列\(S_1, S_2\),\(S_1\)有\…
Description 从前有一名毒瘤. 毒瘤最近发现了量产毒瘤题的奥秘.考虑如下类型的数据结构题:给出一个数组,要求支持若干种奇奇怪怪的修改操作(比如区间加一个数,或者区间开平方),并支持询问区间和.毒瘤考虑了\(n\)个这样的修改操作,并编号为\(1\sim n\).当毒瘤要出数据结构题的时候,他就将这些修改操作中选若干个出来,然后出成一道题. 当然了,这样出的题有可能不可做.通过精妙的数学推理,毒瘤揭露了这些修改操作的关系:有\(m\)对"互相排斥"的修改操作,第\(i\)对是第…
现在不会放题解的!比赛完了我会把题解放上来的 祝大家玩的愉快~ 等会,cnblogs不会显示更新时间?我禁赛我自己 UPD:2018.12.15 欢迎大家爆踩标程- painting 我们考虑转化题意,题目要求 \[\sum\limits_{i_1=1}^n\sum\limits_{i_2=i_1+opt}^n...\sum\limits_{i_m=i_{m-1}+opt}^n1\] 然后我们分情况讨论一下 若opt=1,那么答案即为\(\binom{n}{m}\) 若opt=0,那么序列\(i…
Description 口袋妖怪(又名神奇宝贝或宠物小精灵)红/蓝/绿宝石中的水系道馆需要经过三个冰地才能到达馆主的面前,冰地中的每一个冰块都只能经过一次.当一个冰地上的所有冰块都被经过之后,到下一个冰地的楼梯才会被打开.三个冰地分别如下: 当走出第三个冰地之后,就可以与馆主进行道馆战了.馆主发现这个难度太小,导致经常有挑战者能通过,为了加大难度,将道馆分成了n个房间,每个房间中是两个冰块或障碍,表示一列冰地.任意两个房间之间均有且仅有一条路径相连,即这n个房间构成一个树状结构.每个房间分成了A…
Heavy-light Decompositions Problem Code: HLDOTSSubmit All submissions for this problem are available. Heavy-light decomposition of a tree is a powerful tool that often helps in the most difficult tree data structure problems. Heavy-light decompositio…
难点依旧是题意....需要反向构图+去重+看题 POJ3687-Labeling Balls 题意:1-N编号的球,输出满足给定约束的按原编号排列的重量序列,如果有多组答案,则输出编号最小的Ball重量最轻,若依旧多组则输出编号次小的Ball重量最轻的方案. 题解:在看懂题意后,再开始做会省很多时间...曲解题意还真是人类的本能啊. 为了完成单向关系排序,需要用到拓扑排序: 为了符合编号最小的重量最轻...的题意,需要用到反向拓扑排序: 输入可能会有重复的关系,因此需要判重: 输出需要按原编号输…
题目大意:假造的银币 Sally Jones有一些游客给的银币,但是只有11枚是真正的银币(有一枚是假的),从颜色和大小是无法区分真比还是假币的,但是它的重量和真币是不同的,Sally Jones它是比真币轻还是重. 幸好的是,Sally Jones的一个朋友有个非常精确的天平,他的朋友允许Sally Jones称三次重量来寻找假币,例如,两个硬币是相同的重,那么这两个都是真的. 其实总共有12玫硬币,里面就一枚是假的,然后称量三次,找出那个假币,就是这样. 好吧,是不是可以直接用拿出一枚硬币然…