啊。。。崩溃
by Alviss_lky @ 2018-09-26 18:00:41
拿你的代码测试了一下,开个long long 就行了
by 唯爱你一生 @ 2018-10-02 20:36:38
```
#include<bits/stdc++.h>
#define LL long long
using namespace std;
struct Node{
int to,next,val;
}q[2100000];
LL m,v[1100000],sum[1100000],n,h[1100000],fa[1100000];
LL ans;
void add(LL x,LL y,LL z){
m++;
q[m].to=y;
q[m].next=h[x];
h[x]=m;
q[m].val=z;
}
void dfs(LL x){
LL y;
for(LL i=h[x];i;i=q[i].next){
y=q[i].to;
if(y==fa[x])
continue;
ans+=v[y]*abs(n-sum[y]*2);
dfs(y);
}
}
void build(int x){
LL y;
sum[x]=1;
for(int i=h[x];i;i=q[i].next){
y=q[i].to;
if (y!=fa[x]){
fa[y]=x;
v[y]=q[i].val;
build(y);
sum[x]+=sum[y];
}
}
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
LL x,y,z;
for(LL i=1;i<=n-1;i++){
cin>>x>>y>>z;
add(x,y,z);
add(y,x,z);
}
build(1);
dfs(1);
cout<<ans<<"\n";
return 0;
}
```
by 唯爱你一生 @ 2018-10-02 20:37:02