[BZOJ2435]NOI2011道路修建|dfs|bfs

来源:互联网 发布:买汉服哪家店淘宝 编辑:程序博客网 时间:2024/06/04 16:44

NOI怎么会有这么水的题。。dfs维护一下size随便搞搞。。

#include<cstdio>#include<cstdlib>#include<iostream>#define N 1000005#define ll long longusing namespace std;struct edge{int e,q,next;}ed[N*2];int n,s,e,q,ne=1,i,a[N],size[N];ll ans;void add(int s,int e,int q){ed[++ne].e=e;ed[ne].q=q;ed[ne].next=a[s];a[s]=ne;}void dfs(int x,int fa){int to;size[x]=1;for (int j=a[x];j;j=ed[j].next)if (ed[j].e!=fa){to=ed[j].e;dfs(to,x);size[x]+=size[to];ans+=(ll)ed[j].q*(ll)abs(n-2*size[to]);}}int main(){scanf("%d",&n);for (i=1;i<=n;i++) a[i]=0;for (i=1;i<n;i++){scanf("%d%d%d",&s,&e,&q);add(s,e,q);add(e,s,q);}ans=0;dfs(1,0);cout<<ans;}


0 0
原创粉丝点击