哪位大佬可以救我

P2052 [NOI2011] 道路修建

啊。。。崩溃
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


|