loj#P4746. 「eJOI2024」多对关系

「eJOI2024」多对关系

题目描述

题目译自 eJOI2024 Day1 T1. Many Pairs

EJOI 国是一个由 NN 座城市组成的王国。每个城市都有一个唯一的编号,从 11NN。城市之间通过 N1N-1 条双向道路连接。保证任意两个城市之间都可以到达。换句话说,EJOI 国呈树形结构。在 EJOI 国中,还有 KK 个贸易条约。每个条约由一对城市 (A,B)(A, B) 定义,并且与其关联的成本为 CC

国王决定通过以下方式测试儿子的治理能力:

  • 他将选择一个城市 HH 作为王子的总部。假设这棵树现在以 HH 为根节点。
  • 王子将选择最多两个与 HH 相邻的城市。将 HH 及其所选城市的子树都归于他的治理之下。

王子获得的利润等于其管辖范围内的条约的成本 CC 的总和。对于一个条约来说,只有当它涉及的两个城市都在王子的管辖范围内时,它才在他的管辖范围内。

国王还没有宣布哪个城市将成为王子的总部,但王子仍然喜欢猜测。因此,对于每个城市,他想知道如果它被选为新的总部,他可以获得的最大利润是多少。

你的任务是找到每个城市的最大利润。

输入格式

输入的第一行包含两个用空格分隔的整数 NNKK,分别表示 EJOI 国中的城市数量和贸易条约的数量。

接下来的 N1N-1 行中,每行包含两个用空格分隔的整数 UUVV,表示城市 UUVV 之间有一条道路。

接下来的 KK 行中,每行包含三个用空格分隔的整数 A,BA, BCC,分别表示条约涉及的两个城市及其成本。

输出格式

输出 NN 个用空格分隔的整数,第 ii 个整数表示如果城市 ii 被选为王子的总部时可以获得的最大利润。

6 4
6 2
2 5
3 6
1 2
4 6
2 5 11
5 6 16
4 3 18
2 3 6
51 51 51 51 51 33

当城市 66 作为总部时,王子有三种选择可以选择两个相邻的城市及其各自的子树:

  • 城市 2233
  • 城市 2244
  • 城市 3344

通过选择治理城市 2233,条约 1,2,41, 2, 4 将在王子的管辖范围内。因此,他获得的利润为 11+16+6=3311+16+6=33

数据范围与提示

对于所有输入数据,满足:

  • 2N,K21052 \leq N, K \leq 2 \cdot 10^5
  • 1U,V,A,BN1 \leq U, V, A, B \leq N
  • 1C1061 \leq C \leq 10^6

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 1212 N,K50N, K \leq 50
22 1313 N5000,K500N \leq 5000, K \leq 500
33 1717 N5000,K2000N \leq 5000, K \leq 2000
44 2121 N,K5000N, K \leq 5000
55 3737 无附加限制