【前言】储存一个小知识点
【题意】
告诉你农场的地图(该地图的描述与上题一致),请帮助约翰寻找两个最远农场间的距离.
【题解】
只需求树的直径即可。
从任意一点bfs,找到一个最远点,再从这个点bfs,找到的最远点就是直径。
通过分类讨论和反证法可以证明。
可以看这篇非常好的博文—–>树的直径详细证明
【代码】
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define N 100010
using namespace std;
struct node{
int to,w,next;}e[N*