小树
时间限制:1秒 内存限制:256M
【问题描述】
给定一棵边带权的有根树,树中包含 \(n\) 个结点(编号为 \(0..n-1\)),其中根结点的编号为 0。你的任务是在树中找出一个结点集合 \(\{a_1,a_2,…,a_m\}\),集合需要满足如下三个条件:
1)、根结点不在集合中,即 \(0 < a_i < n (1 ≤ i ≤ m)\);
2)、集合中任意两个结点的最近公共祖先一定是根结点;
3)、设 \(w_i\) 为结点 \(a_i\) 到根的路径上包含的边的权值和,\(d_i\) 为结点 \(a_i\) 到根的路径上包含的边的数目,那么集合中的 \(∑w_i/∑d_i\) 要达到最大\((1 ≤ i ≤ m)\)。
【输入格式】
第 1 行为整数 \(n\),表示树的结点数量,接下来的 \(n-1\) 行,每行包含 3 个整数:\(u,v,c\),表示一条有向边的起点为 \(u\),终点为 \(v\),边的权值为 \(c\)。
【输出格式】
对于每组数据输出一行,为一个实数,表示最大的 \(∑w_i/∑d_i\),四舍五入保留 2 位小数。
【输入输出样例1】
Input
2
0 1 2
Output
2.00
【输入输出样例2】
Input
3
0 1 1
0 2 2
Output
2.00
【数据限制】
\(1 ≤ n ≤ 1000\)。