随笔分类 - 树上操作
摘要: "题面" 给你一颗有根树,你只能增加一条边的边权,最后需要使得根到每个叶子节点的距离相等 一道有点贪心意味的题,假设一开始根节点到叶子节点的最远距离为,考虑到只能加边权不能减边权, 显然最终根节点到所有叶子节点的距离一定等于$d
阅读全文
摘要:树的直径 树的直径,是指树上最长的一条链。 求树的直径有两种方法 :表示到达子树中叶子节点的最长链,表示到达子树中叶子节点的次长链,两条链不能有交集,只需要对每个节点做以下更新同时维护最大值最小值即可 这样维护保证了不会出现交集,不用$d2[ev]
阅读全文
摘要: "题面" 给你一颗树,有两种操作,一种是将一条链都染成一种颜色,一种是询问一条链的 颜色段个数 比如共有三段 线段树可支持的操作一定有区间可合并性 这道题难点设计三个地方的合并 明显树链剖分,但是线段树怎么维护呢,注意到两个区间合并
阅读全文
摘要: "题面" 给你一颗个节点带权的树,告诉你有个军队以及他们驻扎的节点,军队经过一条边的时间是这条边的权值,要求移动军队(所有军队可以同时移动,可以重合),使得每一条从根到叶子结点上都有军队驻扎,根节点不能驻扎军队,叶子结点可以驻扎军队。求完成部署的最短时间是多少
阅读全文
摘要: "题面" 给你一颗个节点带权的树以及条路径端点,你可以将一条边的权值设为,要求使得操作后条路径中的最长路径最短 这道题有很多解法,我在复习一种算法后更新一种 二分+贪心++树上差分 这道题显然不是裸的树上差分,但需
阅读全文
摘要: "题面" 给你一张个节点的树和一个遍历的顺序,必须按照顺序走,求每个点被经过多少次,最后到达的点不计算次数 树上差分的裸题,只需要做点差分就行了。 对于路径上相邻两点做点差分会发现有的点被统计两次,所以对于第个经过的点标记一下
阅读全文
摘要: 有一颗个节点的树,给你两条路径各自的端点,询问这两条路径是否有公共点 判断树上两条路径有无公共点:求 若两条路径有公共点,那么到达公共点可以选择顺着链往上走或者往下拐进另一颗子树。 进一步说, 向上走的路只有一条,两
阅读全文