Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <cmath>#include <set>#include <map>#include <queue>#include <vector>#define INF 0x3f3f3f3fusing namespace std;int n, ans;vector<int>mps[100010];int dfs(int u, int fa, int d) {if(mps[u].size() == 1) return d;int x = 0, y = 0;for (int i = 0; i < mps[u].size(); i++) {int v = mps[u][i];if (v == fa) continue;int tmp = dfs(v, u, d + 1);if (tmp > y) {if (tmp > x) {y = x;x = tmp;}else {y = tmp;