随笔分类 -  树上操作

摘要:Description "题面" 题意是给你一颗n个节点的树和k(k20),每条边权是1,告诉你n个点的点权,输出到点i距离k的所有点的点权和 Solution 感觉很不可做,一开始考虑维护距离为k的点,然后跟着当前点往一个方向走,发现根本没法 阅读全文
posted @ 2019-11-03 16:33 __Liuz 阅读(108) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给你一颗有根树,你只能增加一条边的边权,最后需要使得根到每个叶子节点的距离相等 Solution 一道有点贪心意味的DP题,假设一开始根节点到叶子节点的最远距离为d,考虑到只能加边权不能减边权, 显然最终根节点到所有叶子节点的距离d2一定等于$d 阅读全文
posted @ 2019-10-24 15:45 __Liuz 阅读(114) 评论(0) 推荐(0) 编辑
摘要:树的直径 树的直径,是指树上最长的一条链。 求树的直径有两种方法 1.DPd1[u]表示u到达子树中叶子节点的最长链,d2[u]表示u到达子树中叶子节点的次长链,两条链不能有交集,只需要对每个节点做以下更新同时维护最大值最小值即可 这样维护保证了不会出现交集,不用$d2[ev] 阅读全文
posted @ 2019-10-23 16:04 __Liuz 阅读(4041) 评论(0) 推荐(3) 编辑
摘要:Description "题面" 给你一颗树,有两种操作,一种是将一条链都染成一种颜色,一种是询问一条链的 颜色段个数 比如1122211共有三段 Solution 线段树可支持的操作一定有区间可合并性 这道题难点设计三个地方的合并 明显树链剖分,但是线段树怎么维护呢,注意到两个区间合并 阅读全文
posted @ 2019-10-20 20:52 __Liuz 阅读(148) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给你一颗n个节点带权的树,告诉你有m个军队以及他们驻扎的节点,军队经过一条边的时间是这条边的权值,要求移动军队(所有军队可以同时移动,可以重合),使得每一条从根到叶子结点上都有军队驻扎,根节点不能驻扎军队,叶子结点可以驻扎军队。求完成部署的最短时间是多少 阅读全文
posted @ 2019-10-20 19:55 __Liuz 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给你一颗n个节点带权的树以及m条路径端点,你可以将一条边的权值设为0,要求使得操作后m条路径中的最长路径最短 这道题有很多解法,我在复习一种算法后更新一种 Solution1 二分+贪心+LCA+树上差分 这道题显然不是裸的树上差分,但需 阅读全文
posted @ 2019-10-15 11:21 __Liuz 阅读(123) 评论(0) 推荐(0) 编辑
摘要:Description "题面" 给你一张n个节点的树和一个遍历的顺序,必须按照顺序走,求每个点被经过多少次,最后到达的点不计算次数 Solution 树上差分的裸题,只需要做点差分就行了。 对于路径上相邻两点做点差分会发现有的点被统计两次,所以对于第2(n1)个经过的点标记一下 阅读全文
posted @ 2019-10-14 19:49 __Liuz 阅读(138) 评论(0) 推荐(0) 编辑
摘要:Description 有一颗n个节点的树,给你两条路径各自的端点abcd,询问这两条路径是否有公共点 Solution 判断树上两条路径有无公共点:求LCA 若两条路径有公共点,那么到达公共点可以选择顺着链往上走或者往下拐进另一颗子树。 进一步说, 向上走的路只有一条,两 阅读全文
posted @ 2019-10-10 14:24 __Liuz 阅读(132) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示