CF235D.Graph Game

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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:

solve(t)solve(t) ( tt is a tree):

  1. Chose a node xx (it's common to chose weight-center) in tree tt . Let's call this step "Line A".
  2. Deal with all paths that pass xx .
  3. Then delete xx from tree tt .
  4. After that tt becomes some subtrees.
  5. Apply solvesolve on each subtree.

This ends when tt 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 totalCosttotalCost . Initially the value of totalCosttotalCost equal to 00 . So, solve(t)solve(t) (now tt is a graph):

  1. totalCost=totalCost+(size of t)totalCost=totalCost+(size of t) . The operation "=" means assignment. (Size of t)(Size of t) means the number of nodes in tt .
  2. Choose a node xx in graph tt at random (uniformly among all nodes of tt ).
  3. Then delete xx from graph tt .
  4. After that tt becomes some connected components.
  5. Apply solvesolve on each component.

He'll apply solvesolve on a connected graph with nn nodes and nn edges. He thinks it will work quickly, but it's very slow. So he wants to know the expectation of totalCosttotalCost of this procedure. Can you help him?

输入格式

The first line contains an integer nn ( 3<=n<=30003<=n<=3000 ) — the number of nodes and edges in the graph. Each of the next nn lines contains two space-separated integers ai,bia_{i},b_{i} (0<=ai,bi<=n1)(0<=a_{i},b_{i}<=n-1) indicating an edge between nodes aia_{i} and bib_{i} .

Consider that the graph nodes are numbered from 00 to (n1)(n-1) . 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 totalCosttotalCost . Your answer will be considered correct if its absolute or relative error does not exceed 10610^{-6} .

输入输出样例

  • 输入#1

    5
    3 4
    2 3
    2 4
    0 4
    1 2
    

    输出#1

    13.166666666666666
    
  • 输入#2

    3
    0 1
    1 2
    0 2
    

    输出#2

    6.000000000000000
    
  • 输入#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 totalCosttotalCost will always be 3+2+1=63+2+1=6 .

首页