1897: 附近的牛

内存限制:512 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:42 通过:22

题目描述

农场由 N 个点和 N-1 条双向路径组成。通过 N-1 条路径使得所有连通。
i 有 C(i) 头奶牛,奶牛有时会穿过 K 条路径移动到不同的
农夫想要在每个 i 种植足够的草来喂养最大数量的奶牛 M(i)。
也就是说,对于每个点 i ,农夫需要考虑最多可能会有多少头奶牛到达该点 i 。
请求出每个 M(i)。

输入格式

第 1 行:两个整数, N 和 K,1 <= N <= 100,000,1 <= K <= 20。
第 2 行 - 第 N 行:两个整数 u 和 v ,表示点 u 和点 v 之间存在路径,1 <= u, v <= N。
第 N + 1 行 - 第 2N 行:第 N + i 行输入 1 个整数表示 C(i),0 <= C(i) <= 1000。 

输出格式

输出 N 行,第 i 行输出 M(i)。

输入样例 复制

6 2
5 1
3 6
2 4
2 1
3 2
1
2
3
4
5
6

输出样例 复制

15
21
16
10
8
11

数据范围与提示

来源:USACO 2012.2