#P10059. [CF235D]Graph Game
[CF235D]Graph Game
Graph Game
题面翻译
题目描述
求基环树随机点分治总遍历次数期望
基环树随机点分治步骤:
①遍历当前分治区域所有点一次
②在当前分治区域随机选择一个点
③将删掉,产生的所有连通块递归处理。
输入数据
第一行一个正整数表示树的大小,接下来行每行两个非负整数表示一条边
输出数据
一行一个浮点数表示期望,误差不超过。
题目描述
In computer science, there is a method called "Divide And Conquer By Node" to solve some hard problems about paths on a tree. Let's desribe how this method works by function:
( is a tree):
- Chose a node (it's common to chose weight-center) in tree . Let's call this step "Line A".
- Deal with all paths that pass .
- Then delete from tree .
- After that becomes some subtrees.
- Apply on each subtree.
This ends when has only one node because after deleting it, there's nothing.
Now, WJMZBMR has mistakenly believed that it's ok to chose any node in "Line A". So he'll chose a node at random. To make the situation worse, he thinks a "tree" should have the same number of edges and nodes! So this procedure becomes like that.
Let's define the variable . Initially the value of equal to . So, (now is a graph):
- . The operation "=" means assignment. means the number of nodes in .
- Choose a node in graph at random (uniformly among all nodes of ).
- Then delete from graph .
- After that becomes some connected components.
- Apply on each component.
He'll apply on a connected graph with nodes and edges. He thinks it will work quickly, but it's very slow. So he wants to know the expectation of of this procedure. Can you help him?
输入格式
The first line contains an integer ( ) — the number of nodes and edges in the graph. Each of the next lines contains two space-separated integers indicating an edge between nodes and .
Consider that the graph nodes are numbered from to . It's guaranteed that there are no self-loops, no multiple edges in that graph. It's guaranteed that the graph is connected.
输出格式
Print a single real number — the expectation of . Your answer will be considered correct if its absolute or relative error does not exceed .
样例 #1
样例输入 #1
5
3 4
2 3
2 4
0 4
1 2
样例输出 #1
13.166666666666666
样例 #2
样例输入 #2
3
0 1
1 2
0 2
样例输出 #2
6.000000000000000
样例 #3
样例输入 #3
5
0 1
1 2
2 0
3 0
4 1
样例输出 #3
13.166666666666666
提示
Consider the second example. No matter what we choose first, the will always be .