1 条题解

  • 1
    @ 2026-6-6 13:29:11
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int n,ans;
    struct node{
        int v,w;
    };
    vector<node> g[1000009];
    int sz[1000009];
    void dfs(int u,int fa){
        sz[u] = 1;
        for(auto [v,w]:g[u]){
            if(v == fa) continue;
            dfs(v,u);
            sz[u]+=sz[v];
            ans+=abs(sz[v]-(n-sz[v]))*w;
        }
    }
    signed main(){
        cin>>n;
        for(int i = 1;i<n;++i){
            int u,v,w;
            cin>>u>>v>>w;
            g[u].push_back({v,w});
            g[v].push_back({u,w});
        }
        dfs(1,0);
        cout<<ans;
    }
    
    • 1

    信息

    ID
    118
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    5
    已通过
    2
    上传者