1465 - 「ZJOI2015」幻想乡战略游戏
傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来,更别说和别人打仗了。 在打仗之前,幽香现在面临一个非常基本的管理问题需要解决。 整个地图是一个树结构,一共有 nnn 块空地,这些空地被 n−1n-1n−1 条带权边连接起来,使得每两个点之间有一条唯一的路径将它们连接起来。
在游戏中,幽香可能在空地上增加或者减少一些军队。同时,幽香可以在一个空地上放置一个补给站。 如果补给站在点 uuu 上,并且空地 vvv 上有 dvd_vdv 个单位的军队,那么幽香每天就要花费 dv⋅dist(u,v)d_v \cdot \text{dist}(u,v)dv⋅dist(u,v) 的金钱来补给这些军队。由于幽香需要补给所有的军队,因此幽香总共就要花费为 ∑(dv⋅dist(u,v))\sum (d_v \cdot \text{dist}(u,v))∑(dv⋅dist(u,v)),其中1≤v≤N1 \leq v \leq N1≤v≤N)的代价,dist(u,v)\text{dist}(u,v)dist(u,v) 表示 uuu 个 vvv 在树上的距离(唯一路径的权和)。 因为游戏的规定,幽香只能选择一个空地作为补给站。在游戏的过程中,幽香可能会在某些空地上制造一些军队,也可能会减少某些空地上的军队,进行了这样的操作以后,出于经济上的考虑,幽香往往可以移动他的补给站从而省一些钱。但是由于这个游戏的地图是在太大了,幽香无法轻易的进行最优的安排,你能帮帮她吗? 你可以假定一开始所有空地上都没有军队。
输入
第一行两个数 nnn 和 QQQ 分别表示树的点数和幽香操作的个数,其中点从 111 到 nnn 标号。
接下来 n−1n-1n−1 行,每行三个正整数 a,b,ca, b, ca,b,c,表示 aaa 和 bbb 之间有一条边权为 ccc 的边。 接下来 QQQ 行,每行两个数 u,eu, eu,e,表示幽香在点 uuu上放了 eee单位个军队(如果 e<0e<0e<0,就相当于是幽香在 uuu 上减少了 ∣e∣|e|∣e∣ 单位个军队,说白了就是 du←du+ed_u \leftarrow d_u+edu←du+e)。数据保证任何时刻每个点上的军队数量都是非负的。
输出
对于幽香的每个操作,输出操作完成以后,每天的最小花费,也即如果幽香选择最优的补给点进行补给时的花费。
样例
输入
10 5 1 2 1 2 3 1 2 4 1 1 5 1 2 6 1 2 7 1 5 8 1 7 9 1 1 10 1 3 1 2 1 8 1 3 1 4 1
输出
0 1 4 5 6
提示
对于所有数据,1≤c≤1000, 0≤∣e∣≤1000, n≤105, Q≤1051 \leq c \leq 1000, \ 0 \leq |e| \leq 1000, \ n \leq 10^5, \ Q \leq 10^51≤c≤1000, 0≤∣e∣≤1000, n≤105, Q≤105
来源
ZJOI2015 NOIP 省选 高级