302588: CF500D. New Year Santa Network

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

New Year Santa Network

题意翻译

题目描述 树世界的新年即将到来!在这个世界上,顾名思义,有n个城市被n-1条道路连接,并且任何两个不同的城市都存在着它们之间的路径。城市的编号为1~n的整数,并且道路的编号为1~n-1的整数。让我们定义d(u,v)作为城市u与城市v之间的道路的长度。 作为一项年度活动,树世界的人们每年都要修好一条路。结果,一条道路的长度减少了。现在已经知道了在第i年,第ri条道路的权值将变为wi,wi小于原长。 三个圣诞老人正在计划每年给树世界上所有的孩子们礼物。为了做到这一点,他们需要一些准备,所以他们将会选择三个不同的城市c1,c2,c3在每个城市建一个仓库第k个(1<=k<=3)圣诞老人将负责ck个城市的仓库。 三个圣诞老人独自看管仓库实在太无聊了。所以,他们决定建立一个只供圣诞老人的网络!建这个网络的花费相当于d(c1,c2)+d(c2,c3)+d(c3,c1) 美元。 圣诞老人太忙了所以不能找到最好的城市,所以他们决定在1~n中随机选择三个城市。圣诞老人想知道需要建立网络的成本期望值。 然而,如上所述,每年一条道路的长度都会减少。所以,圣诞老人要计算每次长度变化后的预期。帮助他们计算! 输入格式: 第一行 一个数字n 之后n-1行 ai,bi,li表示道路 编号为i的道路连接ai,bi两个城市,道路长度为li 下一行 一个数字q, 表示道路维修次数 之后q行 rj,wj表示第j次维修,将第rj条道路的长度变为了wj (一条道路可以被维修多次) 输出格式: q行:对于每次修改,输出在树世界里建立网络的预期花费。保留小数点后六位。 Translated by @jzzcjb

题目描述

New Year is coming in Tree World! In this world, as the name implies, there are $ n $ cities connected by $ n-1 $ roads, and for any two distinct cities there always exists a path between them. The cities are numbered by integers from 1 to $ n $ , and the roads are numbered by integers from $ 1 $ to $ n-1 $ . Let's define $ d(u,v) $ as total length of roads on the path between city $ u $ and city $ v $ . As an annual event, people in Tree World repairs exactly one road per year. As a result, the length of one road decreases. It is already known that in the $ i $ -th year, the length of the $ r_{i} $ -th road is going to become $ w_{i} $ , which is shorter than its length before. Assume that the current year is year $ 1 $ . Three Santas are planning to give presents annually to all the children in Tree World. In order to do that, they need some preparation, so they are going to choose three distinct cities $ c_{1} $ , $ c_{2} $ , $ c_{3} $ and make exactly one warehouse in each city. The $ k $ -th ( $ 1<=k<=3 $ ) Santa will take charge of the warehouse in city $ c_{k} $ . It is really boring for the three Santas to keep a warehouse alone. So, they decided to build an only-for-Santa network! The cost needed to build this network equals to $ d(c_{1},c_{2})+d(c_{2},c_{3})+d(c_{3},c_{1}) $ dollars. Santas are too busy to find the best place, so they decided to choose $ c_{1},c_{2},c_{3} $ randomly uniformly over all triples of distinct numbers from $ 1 $ to $ n $ . Santas would like to know the expected value of the cost needed to build the network. However, as mentioned, each year, the length of exactly one road decreases. So, the Santas want to calculate the expected after each length change. Help them to calculate the value.

输入输出格式

输入格式


The first line contains an integer $ n $ ( $ 3<=n<=10^{5} $ ) — the number of cities in Tree World. Next $ n-1 $ lines describe the roads. The $ i $ -th line of them ( $ 1<=i<=n-1 $ ) contains three space-separated integers $ a_{i} $ , $ b_{i} $ , $ l_{i} $ ( $ 1<=a_{i},b_{i}<=n $ , $ a_{i}≠b_{i} $ , $ 1<=l_{i}<=10^{3} $ ), denoting that the $ i $ -th road connects cities $ a_{i} $ and $ b_{i} $ , and the length of $ i $ -th road is $ l_{i} $ . The next line contains an integer $ q $ ( $ 1<=q<=10^{5} $ ) — the number of road length changes. Next $ q $ lines describe the length changes. The $ j $ -th line of them ( $ 1<=j<=q $ ) contains two space-separated integers $ r_{j} $ , $ w_{j} $ ( $ 1<=r_{j}<=n-1 $ , $ 1<=w_{j}<=10^{3} $ ). It means that in the $ j $ -th repair, the length of the $ r_{j} $ -th road becomes $ w_{j} $ . It is guaranteed that $ w_{j} $ is smaller than the current length of the $ r_{j} $ -th road. The same road can be repaired several times.

输出格式


Output $ q $ numbers. For each given change, print a line containing the expected cost needed to build the network in Tree World. The answer will be considered correct if its absolute and relative error doesn't exceed $ 10^{-6} $ .

输入输出样例

输入样例 #1

3
2 3 5
1 3 3
5
1 4
2 2
1 2
2 1
1 1

输出样例 #1

14.0000000000
12.0000000000
8.0000000000
6.0000000000
4.0000000000

输入样例 #2

6
1 5 3
5 3 2
6 1 7
1 4 4
5 2 3
5
1 2
2 1
3 5
4 1
5 2

输出样例 #2

19.6000000000
18.6000000000
16.6000000000
13.6000000000
12.6000000000

说明

Consider the first sample. There are 6 triples: $ (1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1) $ . Because $ n=3 $ , the cost needed to build the network is always $ d(1,2)+d(2,3)+d(3,1) $ for all the triples. So, the expected cost equals to $ d(1,2)+d(2,3)+d(3,1) $ .

Input

题意翻译

一个 $n$ 个节点的树上进行 $q$ 次操作,每次操作将第 $r$ 条边的长度修改成 $w$。 用 $d(x,y)$ 表示从点 $x$ 到 $y$ 的距离。 在树上等概率选取三个点 $c_1,c_2,c_3$ ,求在每次操作后 $d(c_1,c_2)+d(c_1,c_3)+d(c_2,c_3)$ 的期望值。 **【输入格式】** - 第一行,一个数字 $n$,表示树的节点数。 - 之后的 $n-1$ 行中,每行三个整数 $a,b,l$,表示树中有一条连接 $a$ 到 $b$ 长度为 $l$ 的边。 - 下一行,一个数字 $q$ 为长度修改次数。 - 接下来 $q$ 行,每行两个整数 $r$ 和 $w$ 表示将第 $r$ 条边的长度修改成 $w$ 。 **【输出格式】** $q$ 行,第 $i$ 行输出在第 $i$ 次操作后,$d(c_1,c_2)+d(c_1,c_3)+d(c_2,c_3)$ 的期望值,需要保证你的输出和正确答案的误差在 $10^{-6}$ 以内

加入题单

算法标签: