上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 59 下一页
摘要: 原题链接:https://www.luogu.com.cn/problem/P4408 题意解读:树形结构中三个点C、A、B,C->A的路径小于C->B的路径,求C->A->B的可能的最长路径。 解题思路: 1、C->A以及C->B的距离有限制,但是A->B是没有限制的,显然越大越好,那么A->B应 阅读全文
posted @ 2025-03-19 14:50 hackerchef 阅读(49) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P1351 题意解读:找到所有距离为2的点对,(a,b)(b,a)是两组点对,每组点对贡献一个联合权值w[a] * w[b],求最大的联合权值,以及所有联合权值之和%10007。 解题思路: 直觉上,直接枚举所有节点,然后在 阅读全文
posted @ 2025-03-18 14:53 hackerchef 阅读(42) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P5836 题意解读:树中节点有两种状态:G、H,给m个路径a->b,如果路径上有一个状态是c值,则输出1,否则输出0。 解题思路: 1、勤奋的做法:树链剖分 理解了题意,第一想到的就是树链剖分,通过线段树节点维护区间是否包 阅读全文
posted @ 2025-03-18 11:31 hackerchef 阅读(50) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P5536 题意解读:核心城市互相连通,确定k个核心城市,使得到核心城市距离最大值最小。 解题思路: 1、k个城市不好确定,可以先考虑1个 要求一个点,使得到其他点最大值最小,这是树的中心概念。 树的中心可以借助换根DP来求 阅读全文
posted @ 2025-03-17 15:50 hackerchef 阅读(90) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P5588 题意解读:树中每个节点有一种颜色,计算每种颜色所有节点能用一条路径穿过的路径数。 解题思路: 直接枚举所有路径显然不可取,需要分情况来讨论,用乘法原理来解决。 首先,要通过dfs预处理出一些信息:siz[i]:节 阅读全文
posted @ 2025-03-14 16:29 hackerchef 阅读(54) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P5666 题意解读:计算树中所有边分割成两个子树各自的重心编号之和的和。 解题思路: 先分析一下重心的性质: 1、重心一定存在,有一个或者两个 2、找重心时,一定沿着根节点往重链方向找,如果重儿子所在子树大小>n/2,则一 阅读全文
posted @ 2025-03-13 13:07 hackerchef 阅读(154) 评论(0) 推荐(1)
摘要: 原题链接:https://www.luogu.com.cn/problem/P2052 题意解读:计算所有“路径权值*两边子树大小之差的绝对值 ”之和。 解题思路:一次DFS即可解决,与求树的重心相似,不断在dfs过程中计算以当前节点为根的子树大小,记录父节点以及父节点到当前节点的路径权值,即可求得 阅读全文
posted @ 2025-03-11 17:49 hackerchef 阅读(42) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P3976 题意解读:树上支持两种操作:1、将u->v路径上所有点权值增加一个数 2、查询u->v路径上两个点权值a-b差值最大值,要求路径上a在b之后。 解题思路: 通过树链剖分,可以将树上路径转换成线性序列。 对于第一个 阅读全文
posted @ 2025-03-11 17:02 hackerchef 阅读(54) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P3038 题意解读:两种操作,对树上路径上的所有边权值加1,查询某一条边的值。 解题思路: 重链剖分既可以对点进行维护,也可以对边进行维护,区别在于边比点少一个,如果边u->v,显然边权值应该归到v,因为u不能保证边是唯一 阅读全文
posted @ 2025-03-10 12:55 hackerchef 阅读(55) 评论(0) 推荐(0)
摘要: 原题链接:https://www.luogu.com.cn/problem/P3384 题意解读:对树上某条最短路径(u到v的最短路径就是u-lca(u,v)-v)上的点修改(给每个点增加值)和查询(路径上所有点的和);对子树所有点修改(子树每个点增加值)和查询(子树所有点的和)。 解题思路: 暴力 阅读全文
posted @ 2025-03-07 21:56 hackerchef 阅读(101) 评论(0) 推荐(0)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 59 下一页