编程题
### 问题描述 小齐有一片农田,有 $N$ 个领域,每两个领域之间通过双向小径相连。小齐的奶牛在各个领域中游荡,有时候从一个领域走到另一个领域,最多经过 $K$ 条小径($1 \leq K \leq 20$)。 每个领域 $i$ 里有 $C(i)$ 头奶牛($0 \leq C(i) \leq 1000$)。小齐想要为每个领域种植足够的草,以满足可能到达该领域的奶牛数量 $M(i)$,即通过最多 $K$ 条小径到达的奶牛数量。请帮助小齐计算每个领域 $i$ 的 $M(i)$。 ### 输入格式 第一行包含两个用空格分隔的整数 $N$ 和 $K$。 接下来 $N-1$ 行,每行包含两个整数 $i$ 和 $j$,表示领域 $i$ 和 $j$ 之间有一条小径。 接下来的 $N$ 行,每行包含一个整数 $C(i)$,表示领域 $i$ 中的奶牛数量。 ### 输出格式 输出 $N$ 行,每行包含一个整数,表示对应领域的 $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 ``` ### 评测数据规模 $1 \leq N \leq 100,000$。
查看答案
赣ICP备20007335号-2