Codeforces Beta Round 92 (Div. 1 Only)
E
Maze
Codeforces
2500
原题
← D→
翻译中…

A maze is represented by a tree (an undirected graph, where exactly one way exists between each pair of vertices). In the maze the entrance vertex and the exit vertex are chosen with some probability. The exit from the maze is sought by Deep First Search. If there are several possible ways to move, the move is chosen equiprobably. Consider the following pseudo-code:

翻译中…

DFS(x)
    if x == exit vertex then
        finish search
    flag[x] <- TRUE
    random shuffle the vertices' order in V(x) // here all permutations have equal probability to be chosen
    for i <- 1 to length[V] do
        if flag[V[i]] = FALSE then
            count++;
            DFS(y);
    count++;

翻译中…

$*V*(*x*)$ is the list vertices adjacent to $*x*$. The $*flag*$ array is initially filled as FALSE. $*DFS*$ initially starts with a parameter of an entrance vertex. When the search is finished, variable $*count*$ will contain the number of moves.

翻译中…

Your task is to count the mathematical expectation of the number of moves one has to do to exit the maze.

翻译中…

Input

翻译中…

The first line determines the number of vertices in the graph $*n*$ ($1 ≤ *n* ≤ 10^{5}$). The next $*n* - 1$ lines contain pairs of integers $*a*_{*i*}$ and $*b*_{*i*}$, which show the existence of an edge between $*a*_{*i*}$ and $*b*_{*i*}$ vertices ($1 ≤ *a*_{*i*}, *b*_{*i*} ≤ *n*$). It is guaranteed that the given graph is a tree.

翻译中…

Next $*n*$ lines contain pairs of non-negative numbers $*x*_{*i*}$ and $*y*_{*i*}$, which represent the probability of choosing the $*i*$-th vertex as an entrance and exit correspondingly. The probabilities to choose vertex $*i*$ as an entrance and an exit equal image and image correspondingly. The sum of all $*x*_{*i*}$ and the sum of all $*y*_{*i*}$ are positive and do not exceed $10^{6}$.

翻译中…

Output

翻译中…

Print the expectation of the number of moves. The absolute or relative error should not exceed $10^{ - 9}$.

翻译中…

Note

翻译中…

In the first sample the entrance vertex is always 1 and the exit vertex is always 2.

翻译中…

In the second sample the entrance vertex is always 1 and the exit vertex with the probability of 2/5 will be 2 of with the probability if 3/5 will be 3. The mathematical expectations for the exit vertices 2 and 3 will be equal (symmetrical cases). During the first move one can go to the exit vertex with the probability of 0.5 or to go to a vertex that's not the exit vertex with the probability of 0.5. In the first case the number of moves equals 1, in the second one it equals 3. The total mathematical expectation is counted as $2 / 5 × (1 × 0.5 + 3 × 0.5) + 3 / 5 × (1 × 0.5 + 3 × 0.5)$

翻译中…

样例

Input #1
2
1 2
0 1
1 0
Output #1
1.00000000000000000000
InputCopy OutputCopy
Input #2
3
1 2
1 3
1 0
0 2
0 3
Output #2
2.00000000000000000000
InputCopy OutputCopy
Input #3
7
1 2
1 3
2 4
2 5
3 6
3 7
1 1
1 1
1 1
1 1
1 1
1 1
1 1
Output #3
4.04081632653
InputCopy OutputCopy
题目信息
题号
123E
时间限制
1 s
内存限制
256 MB
标签
DFS 及类似
动态规划
概率论
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。