#g6006. [GESP6级模拟题]快递中心

[GESP6级模拟题]快递中心

题目背景

快递公司在 nn 个小区之间铺设了 n−1n-1 条双向快递通道,保证任意两个小区之间都能通过通道相互到达(形成一棵树)。

公司计划将其中一个小区升级为"区域配送中心"。配送中心到其他小区的总距离越短,运营成本越低。

为了科学决策,公司需要知道:如果选择每个小区作为配送中心,分别需要行驶的总距离是多少。

题目描述

给定一棵 nn 个节点的树,节点编号 1∼n1 \sim n,每条边的长度均为 11。

对于每个节点 ii(1≤i≤n1 \le i \le n),计算它到所有其他节点的距离之和。

输入格式

第一行一个正整数 nn,表示节点个数。

接下来 n−1n-1 行,每行两个整数 u,vu, v,表示节点 uu 和 vv 之间有一条边。

输出格式

输出一行 nn 个整数,第 ii 个整数表示从节点 ii 出发到所有其他节点的距离之和。

样例输入

5
1 2
1 3
3 4
3 5

样例输出

6 9 5 8 8

样例解释

树的形态如下:

    1
   / \
  2   3
     / \
    4   5
  • 节点 11 到各点距离:0+1+1+2+2=60+1+1+2+2 = 6
  • 节点 22 到各点距离:1+0+2+3+3=91+0+2+3+3 = 9
  • 节点 33 到各点距离:1+2+0+1+1=51+2+0+1+1 = 5
  • 节点 44 到各点距离:2+3+1+0+2=82+3+1+0+2 = 8
  • 节点 55 到各点距离:2+3+1+2+0=82+3+1+2+0 = 8

数据范围

1≤n≤10001 \le n \le 1000