#L0655. 近处的奶牛

近处的奶牛

题目描述

农夫约翰发现他的奶牛经常在相邻的草地之间走动。考虑到这一点,他想在每块草地上种植足够多的草,不仅要满足最初在那里的奶牛,还要照顾从附近走过来的奶牛。

约翰的农场共有 NN1N1000001 \leq N \leq 100000)块草地,其中 N1N-1 条双向小径将某些草地两两相连。约翰将农场设计成:任意两块草地 iijj 之间恰好有一条由小径组成的唯一路径。

ii 块草地上有 CiC_i0Ci10000 \leq C_i \leq 1000)只奶牛,但奶牛有时会走到其他草地上,最多跨越 KK1K201 \leq K \leq 20)条小径。

约翰想在每块草地 ii 上种植足够多的草,以喂饱可能到达该草地的最大奶牛数 MiM_i——即所有通过至多 KK 条小径即可到达草地 ii 的奶牛总数。请帮约翰计算每块草地 iiMiM_i

输入格式

11 行:两个空格分隔的整数 NNKK

22NN 行:每行两个空格分隔的整数 iijj1i,jN1 \leq i,j \leq N),表示草地 iijj 之间有一条小径直接相连。

N+1N+12N2N 行:第 N+iN+i 行包含一个整数 CiC_i0Ci10000 \leq C_i \leq 1000)。

输出格式

NN 行,第 ii 行输出 MiM_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

</p>

提示

样例中 66 块草地,小径连接 (5,1)(5,1)(3,6)(3,6)(2,4)(2,4)(2,1)(2,1)(3,2)(3,2)。第 ii 块草地有 Ci=iC_i = i 只奶牛。

草地 11 在距离 22 条小径内共有 M1=15M_1 = 15 只奶牛,以此类推。

难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
1383
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者