2 条题解

  • 0
    @ 2022-12-11 15:07:40

    深搜写法

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define endl '\n'
    struct Edge
    {
        int des, wei;   //目的地 权重
    };
    int n, ans = 2e9;
    vector<Edge> vec[1005];
    void dfs(int now, int pre, int sum)
    {
        ans = min(ans, sum);
        for (auto i : vec[now])
        {
            if (i.des == pre)
                continue;
            dfs(i.des, now, sum + i.wei);
        }
    }
    int main()
    {
        std::ios::sync_with_stdio(false);
        cin.tie(0);
        cin >> n;
        for (int i = 1; i < n; i++)
        {
            int u, v, w;
            cin >> u >> v >> w;
            vec[u].push_back((Edge){v, w});
            vec[v].push_back((Edge){u, w});
        }
        for (int i = 1; i <= n; i++)
            dfs(i, 0, 0);
        cout << ans << endl;
    }
    

    信息

    ID
    1136
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    13
    已通过
    11
    上传者