#include<iostream>
#include<vector>
#include<bits/stdc++.h>
#include<algorithm>
//#define int long long
//#define ld long double
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const ll N = 1e9 + 7; ll mod = 1e9 + 7;
const int maxe = 1e5 + 7;
const int inf = 0x3f3f3f3f3f3f3f3f;
ll dp[maxe][2];
vector<int> g[maxe];
ll val[maxe];
ll ans = 0;
void dfs(int u, int pre)
{
dp[u][1] = val[u];
dp[u][0] = 0;
int d=0;
for (auto& i : g[u])
{
if (i == pre)continue;
dfs(i, u);
int x=dp[i][1]-dp[i][0];
d=max(d,x);
dp[u][0] += dp[i][0];
dp[u][1] += dp[i][0];
}
dp[u][0]+=d;
}
int main()
{
memset(val, 0, sizeof(val));
int n; cin >> n;
for (int i = 1; i <= n - 1; i++)
{
int x, y, v; cin >> x >> y >> v;
g[x].push_back(y);
g[y].push_back(x);
val[y] = v;
}
dfs(1, 0);
cout<<dp[1][0] << endl;
}
全部评论
(0) 回帖