U446858 炮兵游击
题目背景
**L国和Y国~~因为一点鸡毛蒜皮的小事~~打了起来!场面轰轰烈烈!**
题目描述
你作为$Y$国的参谋长,全权负责本次炮兵活动。现在,你们决定出动1门大炮,这个大炮适合游走,能潜伏于各个区域而不被人发现。你带着这个任务,与那炮秘密潜伏入了敌阵地中。
敌阵地是一个树形阵地,你们有足够的能力能将炮放在任意一个节点上而不被发现。炮的射程为$k(k \leq 20)$个距离单位,一个距离单位是相邻两个结点的间隔距离,且那炮必须按照树的路径走(节省炮弹),每一个结点都有销毁他所得的价值$val_i(val_i \leq 100)$,现在你想知道,将炮放在第$i$个点上时,能获得的价值和$m_i$最多是多少。
输入格式
- 第一行两个正整数$n,k$,表示敌阵地一共有$n$个结点,炮弹的射程为$k$。
- 第$2$行到第$n$行每行两个正整数$x,y$,表示结点$x,y$之间存在一条路径。
- 第$n+1$到第$2×n$行,每行一个正整数$val_i$,表示炸掉第$i$个结点的价值。
输出格式
- 共$n$行,每行一个整数$m_i$,表示在第$i$个结点设炮获得的总价值。
说明/提示
- 对于$100\%$的数据,$n \leq 2×10^5,2 \leq k \leq 20,1 \leq val_i \leq 100$
- 对于测试点$1,2$,$1 \leq n \leq 1000,1 \leq k \leq 5$
- 对于测试点$4$,$n \leq 5×10^3,k \leq 10$
- 对于测试点$5$,$k == 1$