#P13900. [CSPro 28] 聚集方差
[CSPro 28] 聚集方差
Description
考虑这样一个模型:现实中一个公司的结构可以用一棵有根树来描述,其中每个点对应一位员工,其父节点(如果有的话)代表了他的直属上司,而其自子树中的点(包括这个点本身)则代表所有可被他支配的员工(广义的讲,人可以支配自己,因此人可以视为自己的员工,因此此处“员工”的概念包括他自己本人)。
一般地,假定该公司内有 位员工,编号从 1 到 ;对编号为 的员工,记 为其子树内所有点的编号的集合(包括 本身)。
对 ,记 为其父节点的编号,并假定总有 (从而编号为 1 的员工是该公司唯一的老板)。
我们说明“聚集方差”可以作为一种统计方式帮助该公司的老板了解他的公司,例如,假定每个员工每年都有一小时的可以自主选择时间的带薪年假,那么可以根据历史数据,统计出每位员工偏好的时间;对第 ()位员工,可以用一个非负整数 表示其偏好的时间。
记 为编号为 的点的子树内所有点(包括 )对应员工的偏好时间的可重集合(从而 )。那么,对于一位编号为 的员工,若其可支配的员工偏好的时间的聚集方差 $\mathcal{G}(A(x)) = \frac{1}{|T(x)|} \sum_{y \in T(x)} \min_{z \in T(x), z \neq y} (a_z - a_y)^2$ 较小,那么说明他可能需要担心会因在某个时间有较多的员工请假而导致工作任务受到影响,从而应该调整工作日程以避免这一问题;反之则说明他不太需要过多关注这一点。
因此该公司的老板想了解,对每个 , 是多少?当然,为了避免精度误差,你只需要输出 。容易验证 总是整数。
Input Format
从标准输入读入数据。
第一行输入一个正整数 表示树的大小;
接下来一行输入 个正数依次表示 ;
接下来一行输入 个非负整数依次表示 。
Output Format
输出到标准输出。
输出 行,其中第 行包含一个非负整数表示 。
2
1
0 1
2
0
Hint
子任务
::cute-table{tuack}
| 子任务编号 | 特殊性质 | 子任务分值 | |
|---|---|---|---|
| 1 | / | 15 | |
| 2 | ^ | 25 | |
| 3 | A | 15 | |
| 4 | ^ | B | ^ |
| 5 | C | 10 | |
| 6 | / | 20 |
特殊性质 A: 。
特殊性质 B: $\forall i \in (1, n], p_i = \lfloor \frac{i}{2} \rfloor$。
特殊性质 C: $\forall i, j \in [1, n], i \neq j \Rightarrow a_i \neq a_j$。
对于所有的数据保证:, ; 。
京公网安备 11011102002149号