2.道路修建

描述 Description

liouzhou_101最悲痛的回忆就是NOI2011的道路修建,当时开了系统堆栈,结果无限RE…

出于某种报复心理,就把那题神奇了一下:

在 Z星球上有N个国家,这N个国家之间只能建造N-1条道路且全部建完这N-1条道路后这N个国家相互连通,修建每条道路都有相应的花费。但是他们都很吝啬,于是决定只随机选出两个不同的国家(为了国家的平等,当然这两个国家是无顺序可言的),建造该建造的道路,使得这两个国家相互连通,自然费用越少越 好。然后问你,在所有情况中,修建道路花费的平均值。

假若您认为本题题目叙述太渣,那就形象地描述一遍:给出一棵边上带权的树,求任意两个不同的点的距离的期望值。

输入格式 InputFormat

第一行包括一个正整数N,N表示国家的数量。

接下来N-1行每行包括三个正整数x、y和w,表示国家x和国家y之间有一条花费为w的道路。

输出格式 OutputFormat

仅一行,包含一个最简分数,格式为A/B,详见样例。

样例输入 SampleInput [复制数据]

4

1 2 1

1 3 1

1 4 1

样例输出 SampleOutput [复制数据]

3/2

数据范围和注释 Hint

对于这组测资,共存在6种情况:

①(1,2) 距离 1; ②(1,3) 距离 1;

③(1,4) 距离 1; ④(2,3) 距离 2;

⑤(2,4) 距离 2; ⑥(3,4) 距离 2;

所以平均值为(1+1+1+2+2+2)/6=3/2。

30%的数据,满足n<=1,000;

50%的数据,满足n<=10,000;

100%的数据,满足1<=n<=100,000,1<=w<=1,000。

时间限制 TimeLimitation

1s
解:随便找个点dfs,假设节点y下有s[y]个点(包括y),他的父节点为t,通过这条路就有s[y]*(n-s[y])次,统计一下即可。
注意:全开long long
来源:“扫地”杯III NOIP2012模拟赛 day1 第二题

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define sc(x) scanf("%d",&x)
#define scl(x) scanf("%lld",&x)
#define man 101000
#define ll long long
using namespace std;
ll n;
struct edge
{
ll next,to,dis;
}e[man*];
ll s[man];
bool vis[man];
ll sum=;
ll head[man*],num=;
void add(int from,int to,int dis)
{
e[++num].next=head[from];
e[num].to=to;
e[num].dis=dis;
head[from]=num;
}
ll gcd(ll a,ll b)
{
if(b==)
return a;
else return gcd(b,a%b);
}
void dfs(ll t)
{
s[t]=;vis[t]=;
for(int i=head[t];i;i=e[i].next)
{
ll to=e[i].to;
if(!vis[to])
{
dfs(to);
sum+=e[i].dis*(n-s[to])*s[to];
s[t]+=s[to];
}
}
}
int main()
{ freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
scl(n);
for(int i=;i<n;i++)
{
int x,y,z;
sc(x);sc(y);sc(z);
add(x,y,z);
add(y,x,z);
}
dfs();
n=n*(n-)/;
if(n==)
n=;
ll ans=gcd(sum,n);
printf("%lld/%lld",sum/ans,n/ans);
return ;
}

冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建的更多相关文章

  1. 冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地

    3.破坏基地 描述 Description 在Z国和W国之间一直战火不断. 好不容易,W国的间谍把完整的Z国的军事基地的地图到手了. 于是W国决定再次出击,一举击破Z国的防线. W国认真研究了Z国的地 ...

  2. 冲刺NOIP2015提高组复赛模拟试题(五)1.数学作业

    1. 数学作业 [问题描述] 路人丙的数学老师非常乏力,他喜欢出一些非常乏力的数学题来为难乏力的学生们.这次数学老师布置了一堆的数学题作为作业,而且这些数学题有个共同的特点是都求C(N,M)中不同质因 ...

  3. CCF-NOIP-2018 提高组(复赛) 模拟试题(五)

    T1 相遇 [问题描述] 在一场奇怪的梦里,小 Y 来到了一个神奇的国度.这个国度可以用一根数轴表示,小 Y 在 N 处,而小 Y 想吃的美食在 K 处.小 Y 有两种方式移动, 一种叫做步行, 一种 ...

  4. CCF-NOIP-2018 提高组(复赛) 模拟试题(七)

    T1 Adjoin [问题描述] 定义一种合法的\(0-1\)串:串中任何一个数字都与\(1\)相邻.例如长度为$ 3 的 0-1 $串中,\(101\)是非法的,因为两边的\(1\)没有相邻的\(1 ...

  5. CCF-NOIP-2018 提高组(复赛) 模拟试题(四)

    T1 贪吃蛇 [问题描述] 贪吃蛇是一个好玩的游戏.在本题中,你需要对这个游戏进行模拟. 这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行. 我们用 \((x, y)\) 来表示第 \( ...

  6. CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)

    T1 Circle [问题描述] 小 w 的男朋友送给小 w 一个 n 个点 m 条边的图,并且刁难小 w 要她找出点数最少的正环. 小 w 不会做,于是向你求助. [输入格式] 第一行两个整数\(n ...

  7. CCF-NOIP-2018 提高组(复赛) 模拟试题(一)

    T1 帽子戏法 问题描述 小 Y 有一个\(n*n*n\)的"帽子立方体" ,即一个\(n\)层的立方体,每层的帽子都 可以排成\(n*n\)的矩阵. "帽子立方体&qu ...

  8. 破译情报-NOIP2016提高组复赛模拟试题

    [题目描述] 最近国安人员截获了一份 RB 国的秘密情报, 全文都是经过加密的,每个单 词都很长.破译人员想到先把单词化简一下,方法是把每个单词尽量取短些的前 缀,但所取的前缀不能是其他单词的前缀. ...

  9. CCF-NOIP-2018 提高组(复赛) 模拟试题(三)

    T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...

随机推荐

  1. 黄聪:WordPress默认编辑器可视化切换不见了,非插件导致消失问题

    1.后台---用户---我的个人资料 2.看看 [可视化编辑器]的[撰写文章时不使用可视化编辑器]项目是不是勾上了 3.去掉保存即可

  2. 黄聪:自定义WordPress顶部管理工具条的技巧(转)

    使用WordPress开发网站项目,很多时候都需要对进行后台定制,今天倡萌主要分享下自定义顶部管理工具条的使用技巧. 注:如无特殊说明,请将下面的代码添加到主题的 functions.php  或者插 ...

  3. UVALive7261(2015ACM/ICPC北京赛区现场赛A)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  4. Appium+python自动化23-Android夜神模拟器

    前言 Android SDK虽然也自带了模拟器,但是那速度会让你怀疑人生,并且不稳定经常卡死异常.夜神模拟器可以说是android模拟器里面的一个神器. 环境安装 1.官网下载地址:https://w ...

  5. java代码------实现从控制台输入整型,

    总结:主要是方法的调用不能错,比如浮点型,整型,字节型,so.on int ====hasNextInt() float--------hasNextfloat() short ====hasNext ...

  6. 操作系统-百科:Linux

    ylbtech-操作系统-百科:Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNI ...

  7. pyc是什么

    python是解释型语言,需要解释器对程序逐行做出解释,然后直接运行. C语言是编译型语言,PC不需要翻译,直接执行就可以了. java也是解释型语言,不过速度可以跟编译型媲美. 用java举例,ja ...

  8. 关于最大传输单元(MTU)的整理

    MTU设置不当,可能会导致许多网络问题,如某些网络应用无法使用,某些网站无法访问等.下面是在网上搜索整理的关于MTU设置的东西,某些可能未作验证,仅供参考. 1. 如何确定网络MTU 某些ISP接入的 ...

  9. 1_python小程序之实现用户的注册登陆验证功能

    python小程序之实现用户的注册登陆验证功能 程序扼要简述:  一.程序流程:1.程序开始2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆3.判断 ...

  10. 8.Redis 数据备份与恢复

    转自:http://www.runoob.com/redis/redis-tutorial.html Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下 ...