U119830.公共祖先

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一棵包含 nn 个节点的无根树,节点编号依次为 1,2,,n1,2,\ldots,n

对于每一个节点 rr,将节点 rr 作为整棵树的根。

定义函数 fr(i,j)f_r(i,j) 表示在以节点 rr 为根的情况下,节点 ii 和节点 jj 的最近公共祖先节点的编号。

对于每一个可能的根节点 rr,请计算:

Sr=i=1nj=1nfr(i,j)S_r=\sum_{i=1}^{n}\sum_{j=1}^{n}f_r(i,j)

并依次输出:

S1,S2,,SnS_1,S_2,\ldots,S_n

注意,本题统计的是所有有序点对 (i,j)(i,j)。也就是说:

  • i<ji<j 时需要统计;
  • i>ji>j 时需要统计;
  • i=ji=j 时也需要统计。

因此,点对 (i,j)(i,j) 和点对 (j,i)(j,i) 会被分别计算。

输入格式

第一行输入一个整数 nn,表示树的节点数量。

接下来 n1n-1 行,每行输入两个整数 u,vu,v,表示节点 uu 和节点 vv 之间存在一条无向边。

保证输入的图是一棵树。

输出格式

输出一行,共包含 nn 个整数。

其中第 rr 个整数表示以节点 rr 为根时:

i=1nj=1nfr(i,j)\sum_{i=1}^{n}\sum_{j=1}^{n}f_r(i,j)

的值。

相邻两个整数之间用一个空格分隔。

输入输出样例

  • 输入#1

    3
    1 2
    2 3

    输出#1

    14 18 22

说明/提示

【样例解释 #1\# 1

给定的树为:

1231-2-3

当节点 11 为根时,节点 11、节点 22 和节点 33 作为最近公共祖先出现的次数分别为 553311,因此:

S1=1×5+2×3+3×1=14S_1=1 \times 5+2 \times 3+3 \times 1=14

当节点 22 为根时:

S2=1×1+2×7+3×1=18S_2=1 \times 1+2 \times 7+3 \times 1=18

当节点 33 为根时:

S3=1×1+2×3+3×5=22S_3=1 \times 1+2 \times 3+3 \times 5=22

所以最终输出:

14182214 \quad 18 \quad 22

【数据范围】

对于所有数据:

1u,vn2×1051 \leq u,v \leq n \leq 2 \times {10}^5

输入保证构成一棵树。

答案保证在有符号 6464 位整数范围内。

子任务 分值 限制
1 5 n=1n=1
2 10 1n81 \leq n \leq 8
3 15 1n3001 \leq n \leq 300
4 15 1n30001 \leq n \leq 3000,且树是一条链
5 15 1n50001 \leq n \leq 5000
6 15 1n2×1051 \leq n \leq 2 \times{10}^5,且树为菊花图或近似菊花图
7 25 1n2×1051 \leq n \leq 2 \times{10}^5

其中:

  • 树为菊花图,指存在一个中心节点与其余所有节点直接相连;
  • 树为近似菊花图,指存在一个节点的度数至少为 n/2\lfloor n/2 \rfloor

输入解题思路,AI测评打分。不知道怎么写?

首页