树的直径
酷酷的Herio
这个作者很懒,什么都没留下…
展开
-
MMSet2(LCA&树的直径)
MMSet2(LCA&树的直径)思路:树的直径,结论:一棵树的任意点集SSS中距离最远的两个点(类似树的直径)必有一个点是深度最大的点,且树上所有点的到该节点距离最大值的最小值为:该点集的直径除以2向上取整。因为:所有点的f(u)f(u)f(u)都是与该点集直径d(x,y)d(x,y)d(x,y)到这两个点的距离取mxmxmx,所以要找到最小的值,只需要mx+12\dfrac{mx+1}{2}2mx+1,这样肯定是最小的,其他的都会大于距离的一半。ep:mx=d(x,y)=5,ep:mx=d原创 2020-08-18 13:12:41 · 391 阅读 · 0 评论 -
Light OJ 1094 - Farthest Nodes in a Tree
Light OJ 1094 - Farthest Nodes in a Tree传送门思路:树的直径。方法1:两次bfsbfsbfs,第一次找到直径的一个端点,然后再从该端点bfsbfsbfs一次的最大距离即为直径,bfsbfsbfs方法需要用一个数组ddd维护距离和判断是否在队列中。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e4+5,M=1e6+5,inf=0x3f3原创 2020-07-01 14:19:53 · 347 阅读 · 0 评论