1 条题解
-
0zhuyichen LV 6 MOD @ 2024-09-16 11:38:48
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 2e5+10,p = 998244353; int n,ans; int h[N],e[N],ne[N],w[N],idx; void add(int a,int b,int c) { e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++; } int siz[N]; void dfs(int u) { for(int i=h[u];~i;i=ne[i]) { int j=e[i]; dfs(j); ans=(ans+2ll*w[i]*siz[j]*(n-siz[j]))%p; siz[u]+=siz[j]; } siz[u]++; } signed main() { memset(h,-1,sizeof h); scanf("%lld",&n); for(int i=1;i<n;i++) { int a,b,c;scanf("%lld %lld %lld",&a,&b,&c); add(a,b,c); } dfs(1); // for(int i=1;i<=n;i++) // printf("%lld %lld\n",i,siz[i]); printf("%lld\n",ans); return 0; }
- 1