Description

在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家

之间建设双向道路使得国家之间连通。但是每个国家的国王都很吝啬,他们只愿

意修建恰好 n – 1条双向道路。 每条道路的修建都要付出一定的费用, 这个费用等于道路长度乘以道路两端的国家个数之差的绝对值。例如,在下图中,虚线所示道路两端分别有 2 个、4个国家,如果该道路长度为 1,则费用为1×|2 – 4|=2。图中圆圈里的数字表示国家的编号。



由于国家的数量十分庞大,道路的建造方案有很多种,同时每种方案的修建

费用难以用人工计算,国王们决定找人设计一个软件,对于给定的建造方案,计

算出所需要的费用。请你帮助国王们设计一个这样的软件。

Input

输入的第一行包含一个整数n,表示 W 星球上的国家的数量,国家从 1到n

编号。接下来 n – 1行描述道路建设情况,其中第 i 行包含三个整数ai、bi和ci,表

示第i 条双向道路修建在 ai与bi两个国家之间,长度为ci。

Output

输出一个整数,表示修建所有道路所需要的总费用。

水题.......(老年退役选手只能做水题压压惊。)

假设当前边的两部分的点的数量分别为\(x,y\),则当我们遍历的时候

\(y=size[v],x=n-size[v]\) (\(v\)为当前遍历到的儿子节点)

那么我们得到的就是\(|n-2\times size[v]| \times w[i]\)(\(w[i]\)为当前边的边权)

注意边权要开 \(long \ long\)

代码

#include<cstdio>
#include<iostream>
#include<algorithm>
#define R register
#define lo long long using namespace std; const int gz=1e6+8; inline void in(R int &x)
{
R int f=1;x=0;char s=getchar();
while(!isdigit(s)){if(s=='-')f=-1;s=getchar();}
while(isdigit(s)){x=x*10+s-'0';s=getchar();}
x*=f;
} int head[gz],tot,size[gz],n; lo ans; struct cod{int u,v;lo w;}edge[gz<<1]; inline void add(R int x,R int y,R lo z)
{
edge[++tot].u=head[x];
edge[tot].v=y;
edge[tot].w=z;
head[x]=tot;
} void dfs(R int u,R int fa)
{
size[u]=1;
for(R int i=head[u];i;i=edge[i].u)
{
if(edge[i].v==fa)continue;
dfs(edge[i].v,u);
size[u]+=size[edge[i].v];
ans+=(lo)(abs(n-2*size[edge[i].v])*edge[i].w);
}
} int main()
{
in(n);
for(R int i=1,x,y;i<n;i++)
{
lo z;
in(x),in(y),scanf("%lld",&z);
add(x,y,z),add(y,x,z);
}
dfs(1,0);
printf("%lld\n",ans);
}

最新文章

  1. 笔记:解决VS2015 不能加载.edmx 的解决方案
  2. linux常用命令(二)
  3. iOS技术博客(文摘)链接地址
  4. STL UVA 11995 I Can Guess the Data Structure!
  5. StringComparison枚举
  6. 在Windows Server 2012 中安装 .NET 3.5 Framework,PowerShell 安装.NET FRAMEWORK
  7. HDU 5667 Sequence 矩阵快速幂
  8. Google Developers中国网站发布!(转)
  9. 在JBoss中部署GeoServer
  10. DLL Export 报错
  11. [HttpClient]简单使用GET请求
  12. asp.net 负载均衡下session存储的解决方法
  13. NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)
  14. [置顶] getline函数-linux
  15. random 函数
  16. SQL 存储过程 触发器 事务
  17. CSS基础用法
  18. ATS缓存数据结构
  19. php字符串递增
  20. mongoDB 小练习

热门文章

  1. HDU 2138 Miller-Rabin 模板题
  2. [Luogu 2023] AHOI2009 维护序列
  3. jQuery UI基本使用方法
  4. ② 设计模式的艺术-08.桥接(Bridge)模式
  5. c++都忘记了,看了看那本发黄的C++primer,还是要去翻下了
  6. XML-RPC笔记
  7. SPOJ JZPLIT
  8. iOS 取消按钮高亮显示方法
  9. Zabbix3.0源码安装
  10. nginx解析带中文的url重定向之后404问题