题目翻译
椎名真冬藏在了世界里,立华奏正在寻找她。
这个世界,只有许多房间。世界里有n间房,编号1到n。另外,n-1对房间直接由通道连接,这样就可以通过使用一个或多个通道,从一间房移动到其它任意一间。也就是说,世界里的房间形成了一棵树。
立华奏在1号房间,她知道椎名真冬也许等可能地藏在除了1号房间的其它任意一个房间。每一秒钟,立华奏能移动到与她目前所在房间相邻的房间。只要立华奏和椎名真冬处于同一间房,立华奏马上就能找到椎名真冬。如果立华奏采取最佳策略,那么立华奏找到椎名真冬的最短期望时间是多少?
————————————————
版权声明:本文为CSDN博主「keguaiguai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/keguaiguai/article/details/122981084
Java
import java.util.*;
public class Main {
static int maxn = 105;
static ArrayList<Integer>[] son = new ArrayList[maxn];
static int ans, tim;
public static void dfs(int cur, int fa) {
tim++;
for (int i = 0; i < son[cur].size(); i++) {
if (son[cur].get(i) != fa) {
ans += tim;
dfs(son[cur].get(i), cur);
}
}
tim++;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
while (t-- > 0) {
int n = scan.nextInt();
int a, b;
for (int i = 1; i <= n; i++) {
son[i] = new ArrayList<Integer>();
}
for (int i = 1; i < n; i++) {
a = scan.nextInt();
b = scan.nextInt();
son[a].add(b);
son[b].add(a);
}
ans = 0;
tim = 0;
dfs(1, 0);
double x = ans * 1.0 / (n - 1);
System.out.println(String.format("%.10f", x));
}
}
}
这么巧的吗,我就是博主keguaiguai,有点尴尬~