问题描述
众所周知,萌萌哒六花不擅长数学,所以勇太给了她一些数学问题做练习,其中有一道是这样的:
勇太有一棵$n$个节点的树。令1号点为根且令$d_i$为1号点到$i$号点的距离。
接着勇太想选出至少两个节点。显然,一共有$2^n-n-1$种选取的方案。他想等概率的随机选取一种方案。接着,他令$f$为选取的点中$d_i$的最大值,$g$为选取点中$d_i$的次大值($f$可能等于$g$)。
最后勇太想要知道$\frac{(f+1)(g+1)}{f+1+g+1}$的期望值。
当然,这个问题对于萌萌哒六花来说实在是太难了,你可以帮帮她吗?
输入描述
数据组数不超过100组且只有不超过3组数据$n \geq 1000$。
对于每组数据,第一行是一个整数$n(2 \leq n \leq 10^5)$。第二行有$n-1$个数$f_i(1 \leq f_i \leq i)$,代表了i+1号点的父亲。
输出描述
对于每组数据,输出一行代表答案,答案保留六位小数。
输入样例
3
1 1
输出样例
0.833333
Hint
有四种选取节点的方法:
1.选取 {1,2}, 那么 f=1,g=0.
2.选取 {1,3}, 那么 f=1,g=0.
3.选取 {2,3}, 那么 f=1,g=1.
4.选取 {1,2,3}, 那么 f=1,g=1.