题目:CF690C2 Brain Network (medium)
生成树 - 图论 - 树 - 树的直径 - dfs - bfs
看到这题,感觉很像树的直径,只不过是在图上的(燃鹅并没有图的直径这一说法)。
题目要求的是点对之间的最短距离最长,可以比较轻松地想到最小生成树:不会改变两点之间距离,而且路径还唯一。
那么,这道题就被转化成求树的直径了
直接 bfs 或树形DP即可
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int Maxn=100000+20,inf=0x3f3f3f3f;
int f[Maxn],g[Maxn];
int n,m,ans;
vector <int> e[Maxn];
inline int read()
{
int s=0,w=1;
char ch=getchar();
while(