火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

算法讲解123【扩展】树上问题专题6-换根dp

作者: 作者的头像   huolong , 时间:2025-04-25 11:29:17 , 所有人可见, 阅读  13

树上问题专题6-换根dp

前置知识

讲解059链式前向星建图

讲解078、讲解079-树型dp,一定要掌握再看本节课

讲解118 -专题1:树上倍增和LCA-上,本节课需要递归函数改成迭代函数的技巧

树上问题专题讲述顺序

  • 专题1:树上倍增和LCA-上,讲解118
  • 专题2:树上倍增和LCA-下,讲解119
  • 专题3:树的重心,讲解120
  • 专题4:树的直径,讲解121
  • 专题5:树上差分,讲解122
  • 专题6:换根dp,讲解123,本节

树上问题专题6-换根dp

换根dp入门题 先解决如下题目,然后对换根dp做整体说明

题目1

最大深度和 给定一棵n个点的树,找到一个节点,使得以这个结点为根时,到达所有节点的深度之和最大如果有多个节点满足要求,返回节点编号最小的测试链接 :https://www.luogu.com.cn/problem/P3478

换根dp

树上的某些问题,需要知道以不同的节点做根的情况下,答案是多少

换根dp的思考重点

如果已经得到父节点做根的答案,怎么加工得到子节点做根的答案,就是所谓的换根 为了达成换根这个目标,可能需要设置若干额外的信息来帮助计算

换根dp的过程

1,先以节点1为头进行树的遍历,收集信息,dfs1过程 2,得到1节点做根的答案,然后从1节点开始再进行树的遍历,求解每个节点做根的答案,dfs2过程 核心在于换根时,答案如何转移

题目2

染色的最大收益 给定一棵n个点的树,初始时所有节点全是白点 第一次操作,你可以选择任意点染黑 以后每次操作,必须选择已经染黑的点的相邻点继续染黑,一直到所有的点都被染完 每次都获得,当前被染色点的白色连通块大小,作为收益 返回可获得的最大收益和 测试链接 : https://www.luogu.com.cn/problem/CF1187E

题目3

翻转道路数量最少的首都 给定一棵n个点的树,但是给定的每条边都是有向的 需要选择某个城市为首都,要求首都一定可以去往任何一个城市 这样一来,可能需要翻转一些边的方向才能做到,现在想翻转道路的数量尽量少 打印最少翻转几条道路就可以拥有首都 如果有若干点做首都时,翻转道路的数量都是最少的,那么打印这些点 测试链接 : https://www.luogu.com.cn/problem/CF219D

题目4

选择节点做根使流量和最大 给定一棵n个点的树,边的边权代表流量限制 从边上流过的流量,不能超过流量限制 现在想知道以某个节点做根时,流到所有叶节点的流量,最大是多少 测试链接 : http://poj.org/problem?id=3585

题目5

每个节点距离k以内的权值和 给定一棵n个点的树,每个点有点权 到达每个节点的距离不超过k的节点就有若干个 把这些节点权值加起来,就是该点不超过距离k的点权和 打印每个节点不超过距离k的点权和 注意k并不大 测试链接 : https://www.luogu.com.cn/problem/P3047

题目6

哪些点可以改造成重心 给定一棵n个点的树,你可以随便删掉一条边,然后随便加上一条边 通过这种方式可以让很多点变成重心 打印所有能变成重心的点 测试链接 : https://www.luogu.com.cn/problem/CF708C 测试链接 : https://codeforces.com/problemset/problem/708/C

讲解120 - 树的重心,一定要先掌握,然后再看本题的解析

题目7

聚会后送每个人回家最短用时 给定一棵n个点的树,边权代表走过边需要花费的时间 给定k个人分别在树上的哪些节点 这k个人选择了一个聚会点,所有的人都去往聚会点进行聚会 聚会结束后,所有人都会上一辆车,车会把每个人送回家 送完最后一个乘客,车不需要回到聚会点 如果聚会点在i,请问从聚会地点出发直到送最后一个人回家,最短用时多少 i = 1 ~ n,打印所有的答案 测试链接 : https://www.luogu.com.cn/problem/P6419

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码