树的直径_解题技巧
性质
多条直径必相交于一点或一条公共路径。
任意两个同一侧的直径端点到相同直径分叉点的距离均相等。
直径一定是最长边。
模板
两次BFS
边权均非负的情况才可以用,用于记录整条直径。
1 | // 找到以bg为起点的直径 |
树形DP
没有边权的正负限制,但只能保存直径的长度。
1 | void dp(int x) { |
练习
- acwing-350 模板题,记录直径并修改
- acwing-351 直径的性质
- acwing-389 直径的必须边
- acwing-390
多条直径必相交于一点或一条公共路径。
任意两个同一侧的直径端点到相同直径分叉点的距离均相等。
直径一定是最长边。
边权均非负的情况才可以用,用于记录整条直径。
1 | // 找到以bg为起点的直径 |
没有边权的正负限制,但只能保存直径的长度。
1 | void dp(int x) { |