商人旅行途中来到一个国家,发现这个国家的城市是用一个树型的公路网络进行连接的,并且国王很扣,对所有在公路上行驶的车辆收取过路费,每条公路收取w过路费,这就导致不同城市之间运送货物很不方便,商人决定在这个国家开办陆上运输公司,商人会收到各个城市发来的订单,订单包含收寄城市以及愿意支付的费用,商人会根据订单选择最优线路进行运输,如果在最优线路下仍然会亏本,商人会选择放弃这笔订单。现在商人请你帮助他计算每笔订单所能获得的最高收益
2018-11-7 UPD: 数据增强,增加一种竹子型数据,所有代码重测
多组测试数据,每组测试数据第一行包含三个数字n, m, w,分别表示城市数量(城市编号0 到n-1),订单数量以及每条公路收取的过路费,接下来n-1行每行2个数字a, b代表城市a, b间有一条公路。接下来m行每行3个数字p,q,v代表寄送城市,收取城市,以及愿意支付的费用。
2 <= n <= 50000, 0 <= m <= 75000,
0 <= w <= 10, 0 <= v <= 1000
Σ(n+m)<=1000000
对于每笔订单输出最优路线下能获得的收益,如果最优路线仍亏本(收益 < 0)则输出“pass”
5 5 2 0 1 0 2 1 3 1 4 1 2 5 1 2 4 3 1 15 4 2 5 3 4 9
1 0 13 pass 5