比赛 2024国庆练习2 评测结果 WWAAAAAAAA
题目名称 消防演练 最终得分 80
用户昵称 darkMoon 运行时间 1.080 s
代码语言 C++ 内存使用 14.54 MiB
提交时间 2024-10-05 15:46:18
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
auto IN = freopen("drill.in", "r", stdin);
auto OUT = freopen("drill.out", "w", stdout);
auto mread = [](){int x;scanf("%lld", &x);return x;};
const int N = 2e5 + 5;
int n = mread(), f[N][3], ans;
vector<int> v[N];
void dfs(int x, int fa){
    f[x][1] = v[x].size();
    for(int y : v[x]){
        if(y == fa){
            continue;
        }
        dfs(y, x);
        int tmp = f[y][1] - 1 + (int)v[x].size() - 1;
        f[x][2] = max(f[x][2], f[x][1] + f[y][1] - 2);
        f[x][1] = max(f[x][1], tmp);
    }
    return;
}
signed main(){
    for(int i = 1, x, y; i < n; i ++){
        cin >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1, 0);
    for(int i = 1; i <= n; i ++){
        ans = max({ans, f[i][1], f[i][2]});
    }
    printf("%lld", ans);
    return 0;
}