competitive_library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub knshnb/competitive_library

:warning: src/old/TreeDiameter.hpp

Code

// 木の直径がdiameterに格納される
signed main() {
    int n;
    cin >> n;
    vector<vector<int>> g(n);
    REP(i, n - 1) {
        int u, v;
        cin >> u >> v;
        u--;
        v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    int diameter = 0;
    function<int(int, int)> dfs = [&](int v, int p) {
        int ma = 0;
        for (int s : g[v])
            if (s != p) {
                int tmp = dfs(s, v) + 1;
                diameter = max(diameter, ma + tmp);
                ma = max(ma, tmp);
            }
        return ma;
    };
    dfs(0, -1);
}
#line 1 "src/old/TreeDiameter.hpp"
// 木の直径がdiameterに格納される
signed main() {
    int n;
    cin >> n;
    vector<vector<int>> g(n);
    REP(i, n - 1) {
        int u, v;
        cin >> u >> v;
        u--;
        v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    int diameter = 0;
    function<int(int, int)> dfs = [&](int v, int p) {
        int ma = 0;
        for (int s : g[v])
            if (s != p) {
                int tmp = dfs(s, v) + 1;
                diameter = max(diameter, ma + tmp);
                ma = max(ma, tmp);
            }
        return ma;
    };
    dfs(0, -1);
}
Back to top page