最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 【模板】线段树合并

    正文概述 陈老师   2026-01-20 15:15:44  

    题目背景

    深绘里一直很讨厌雨天。

    灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。

    虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地里的粮食被弄得一片狼藉。

    无奈的深绘里和村民们只好等待救济粮来维生。

    不过救济粮的发放方式很特别。

    题目描述

    村落里一共有 nn 座房屋,并形成一个树状结构。然后救济粮分 mm 次发放,每次选择两个房屋 (x,y)(x,y),然后对于 xxyy 的路径上(含 xxyy)每座房子里发放一袋 zz 类型的救济粮。

    然后深绘里想知道,当所有的救济粮发放完毕后,每座房子里存放的最多的是哪种救济粮。

    输入格式

    输入的第一行是两个用空格隔开的正整数,分别代表房屋的个数 nn 和救济粮发放的次数 mm

    22 到第 nn 行,每行有两个用空格隔开的整数 a,ba,b,代表存在一条连接房屋 aabb 的边。

    (n+1)(n+1) 到第 (n+m)(n+m) 行,每行有三个用空格隔开的整数 x,y,zx,y,z,代表一次救济粮的发放是从 xxyy 路径上的每栋房子发放了一袋 zz 类型的救济粮。

    输出格式

    输出 nn 行,每行一个整数,第 ii 行的整数代表 ii 号房屋存放最多的救济粮的种类,如果有多种救济粮都是存放最多的,输出种类编号最小的一种。

    样例

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

    数据范围

    占比 数据范围
    20%20\% 1n,m101 \le n,m \le 10
    50%50\% 1n,m20001 \le n,m \le 2000
    100%100\% 1n,m1051 \le n,m \le 10^{5}, 1a,b,x,yn1 \le a,b,x,y \le n, 1z1051 \le z \le 10^{5}
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 【模板】线段树合并