#L4746. 「eJOI2024」多对关系

    ID: 4528 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>搜索DFS树结构树链剖分动态规划树形DP数据结构树状数组树状数组LCA(最近公共祖先)树上差分思想

「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 行中,每行包含三个用空格分隔的整数 AA, BBCC,分别表示条约涉及的两个城市及其成本。


输出格式

输出 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,条约 11, 22, 44 将在王子的管辖范围内。因此,他获得的利润为 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

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

子任务 分值 附加限制
1 12 N,K50N, K \leq 50
2 13 N5000,K500N \leq 5000, K \leq 500
3 17 N5000,K2000N \leq 5000, K \leq 2000
4 21 N,K5000N, K \leq 5000
5 37 无附加限制