03 2025 档案
摘要:原题链接:https://www.luogu.com.cn/problem/P2052 题意解读:计算所有“路径权值*两边子树大小之差的绝对值 ”之和。 解题思路:一次DFS即可解决,与求树的重心相似,不断在dfs过程中计算以当前节点为根的子树大小,记录父节点以及父节点到当前节点的路径权值,即可求得
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3976 题意解读:树上支持两种操作:1、将u->v路径上所有点权值增加一个数 2、查询u->v路径上两个点权值a-b差值最大值,要求路径上a在b之后。 解题思路: 通过树链剖分,可以将树上路径转换成线性序列。 对于第一个
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3038 题意解读:两种操作,对树上路径上的所有边权值加1,查询某一条边的值。 解题思路: 重链剖分既可以对点进行维护,也可以对边进行维护,区别在于边比点少一个,如果边u->v,显然变权值值应该归到v,因为u不能保证边是唯
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3384 题意解读:对树上某条最短路径(u到v的最短路径就是u-lca(u,v)-v)上的点修改(给每个点增加值)和查询(路径上所有点的和);对子树所有点修改(子树每个点增加值)和查询(子树所有点的和)。 解题思路: 暴力
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3128 题意解读:一棵树,每次选取两个节点,在这两个节点之间路径运送牛奶,每运送一次,经过的所有节点都会增加1,最终统计记录最大的节点。 解题思路: 要计算树上两个节点之间的路径,可以采用LCA算法,确定路径之后如何将路
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3379 题意解读:最近公共祖先(Lowest Common Ancestor,LCA)是指在有根树中,两个节点的所有公共祖先中离根最远(即深度最大)的那个祖先节点。 解题思路:(以下题解部分内容为AI生成) 方法一:朴素
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1395 题意解读:在一棵树中找一个点,使得该点到其他点距离之和最小,所有点之间边长度为1。 解题思路:要计算与所有点距离之和最小的,需要因此树的重心的概念。 树的重心 定义 树的重心也称为树的质心。对于一棵无根树,如果选
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1099 题意解读:计算树中其他点与树的直径上一段长度不超过s的路径上最近的点的最大距离的最小值。 解题思路: 在思考此题之前,需要了解树的直径,先来做这道题:https://www.luogu.com.cn/proble
阅读全文