#lCAlydlt60x6304. 雨天的尾巴

雨天的尾巴

好的,这是整理好的题面,不含解题思路,只包含样例解释。


题目描述

深绘里的家乡村落是一个树状结构,有 nn 个节点。
mm 次发放救济粮的操作,每次操作选择两个点 x,yx,y,对 xxyy 的路径上(包括 x,yx,y)的每个点发放一袋 zz 类型的物品。

求完成所有发放操作后,每个点存放最多的是哪种类型的物品。
如果某个点有多个类型的物品数量相同且最多,输出编号最小的类型编号。
如果某个点没有救济粮,输出 00


输入格式

第一行两个正整数 n,mn,m
接下来 n1n-1 行,每行两个整数 a,ba,b,表示 aabb 之间有一条边。
接下来 mm 行,每行三个整数 x,y,zx,y,z,表示一次发放操作,对 xxyy 路径上每个点发放一袋 zz 类型救济粮。

输出格式

nn 行,第 ii 行一个整数,表示第 ii 个点存放最多的救济粮类型编号。

数据范围

  • 1n,m1000001 \le n,m \le 100000
  • 1z1051 \le z \le 10^5

输入样例

5 3
1 2
3 1
3 4
5 3
2 3 3
1 5 2
3 3 3

输出样例

2
3
3
0
2

样例解释

n=5n=5,树的结构边: 1-2
3-1
3-4
5-3
树形为:

    2
    |
    1
    |
    3
   / \
  4   5

(即 3 是中心,连 1,4,5;1 连 2)

m=3m=3 次发放操作:

  1. 2 3 3:在路径 2-1-3 上每个点发类型 3 的粮。

    • 点 2:+1 类型 3
    • 点 1:+1 类型 3
    • 点 3:+1 类型 3
  2. 1 5 2:在路径 1-3-5 上每个点发类型 2 的粮。

    • 点 1:+1 类型 2
    • 点 3:+1 类型 2
    • 点 5:+1 类型 2
  3. 3 3 3:在点 3 上发类型 3 的粮。

    • 点 3:+1 类型 3

统计每个点的救济粮数量

  • 点 1
    操作1:类型 3 → 数量 1
    操作2:类型 2 → 数量 1
    总计:类型 2:1,类型 3:1,一样多 → 输出编号最小的 2。

  • 点 2
    操作1:类型 3 → 数量 1
    其他操作不覆盖点 2
    总计:类型 3:1 → 输出 3。

  • 点 3
    操作1:类型 3 → 数量 1
    操作2:类型 2 → 数量 1
    操作3:类型 3 → 数量 +1
    总计:类型 2:1,类型 3:2 → 输出 3。

  • 点 4
    没有操作覆盖点 4 → 输出 0。

  • 点 5
    操作2:类型 2 → 数量 1 → 输出 2。


输出

2
3
3
0
2

与样例输出一致。