冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建
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.道路修建的更多相关文章
- 冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地
3.破坏基地 描述 Description 在Z国和W国之间一直战火不断. 好不容易,W国的间谍把完整的Z国的军事基地的地图到手了. 于是W国决定再次出击,一举击破Z国的防线. W国认真研究了Z国的地 ...
- 冲刺NOIP2015提高组复赛模拟试题(五)1.数学作业
1. 数学作业 [问题描述] 路人丙的数学老师非常乏力,他喜欢出一些非常乏力的数学题来为难乏力的学生们.这次数学老师布置了一堆的数学题作为作业,而且这些数学题有个共同的特点是都求C(N,M)中不同质因 ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(五)
T1 相遇 [问题描述] 在一场奇怪的梦里,小 Y 来到了一个神奇的国度.这个国度可以用一根数轴表示,小 Y 在 N 处,而小 Y 想吃的美食在 K 处.小 Y 有两种方式移动, 一种叫做步行, 一种 ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(七)
T1 Adjoin [问题描述] 定义一种合法的\(0-1\)串:串中任何一个数字都与\(1\)相邻.例如长度为$ 3 的 0-1 $串中,\(101\)是非法的,因为两边的\(1\)没有相邻的\(1 ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(四)
T1 贪吃蛇 [问题描述] 贪吃蛇是一个好玩的游戏.在本题中,你需要对这个游戏进行模拟. 这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行. 我们用 \((x, y)\) 来表示第 \( ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
T1 Circle [问题描述] 小 w 的男朋友送给小 w 一个 n 个点 m 条边的图,并且刁难小 w 要她找出点数最少的正环. 小 w 不会做,于是向你求助. [输入格式] 第一行两个整数\(n ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(一)
T1 帽子戏法 问题描述 小 Y 有一个\(n*n*n\)的"帽子立方体" ,即一个\(n\)层的立方体,每层的帽子都 可以排成\(n*n\)的矩阵. "帽子立方体&qu ...
- 破译情报-NOIP2016提高组复赛模拟试题
[题目描述] 最近国安人员截获了一份 RB 国的秘密情报, 全文都是经过加密的,每个单 词都很长.破译人员想到先把单词化简一下,方法是把每个单词尽量取短些的前 缀,但所取的前缀不能是其他单词的前缀. ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...
随机推荐
- python 怎么和命令行交互
http://www.cyberciti.biz/faq/python-run-external-command-and-get-output/ http://stackoverflow.com/qu ...
- Unit04: JSP基本语法 、 JSP运行原理
Unit04: JSP基本语法 . JSP运行原理 hello.jsp <%@page pageEncoding="utf-8"%> <!doctype html ...
- python TypeError: unsupported operand type(s) for +: 'int' and 'str' [closed]
TypeError: unsupported operand type(s) for +: 'int' and 'str' [closed] sql="insert into auto_tr ...
- python 高阶内置函数
1.lambda 匿名函数 lambda 参数: 返回值 函数名统一都叫lambda. 2.sorted() 排序函数 排序函数 sorted(iterable,key,reverse) key:排序 ...
- python--logging库学习_第二波
用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...
- Druid.io系列(一):简介
原文链接: https://blog.csdn.net/njpjsoftdev/article/details/52955676 Druid.io(以下简称Druid)是面向海量数据的.用于实时查询与 ...
- C++ 单链表操作总结
第一.单链表的定义和操作 #include <iostream> using namespace std; template <typename T> struct Node ...
- 安装OpenResty
./configure --prefix=/data/openresty_10002 --with-luajit --with-http_stub_status_module OpenResty,也被 ...
- PHP根据问题追踪代码技巧一
1.问题描述: 2.E:\html\pim\php_aspire-mcloud\module\pim\controller\Configure.class.php public function po ...
- pandas入门学习
索引对象 pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等).构建series或DataFrame时,所用到的任何数组或其他序列的标签都会转换成一个index: In [1]: impo ...