最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 树和查询

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

    题目描述

    给定一棵包含 nn 个顶点的有根树。每个顶点都有一个颜色。假设树的顶点编号为 11nn,顶点 vv 的颜色用 cv c_{v} 表示。树的根是编号为 11 的顶点。

    在此问题中,你需要回答 mm 个查询。每个查询由两个整数 vj v_{j} kj k_{j} 描述。对于查询 vj v_{j} , kj k_{j} ,其答案为满足以下条件的颜色 xx 的数量:在顶点 vj v_{j} 的子树中,颜色 xx 的出现次数至少为 kj k_{j} 次。

    输入格式

    第一行包含两个整数 nnmm2n105 2 \le n \le 10^{5} ; 1m105 1 \le m \le 10^{5} )。

    第二行包含一个整数序列 c1,c2,...,cn c_{1}, c_{2}, ..., c_{n}1ci105 1 \le c_{i} \le 10^{5} )。

    接下来 n1n - 1 行描述树的边。第 ii 行包含两个整数 ai,bi a_{i}, b_{i} 1ai,bin 1 \le a_{i}, b_{i} \le n ; aibi a_{i} \ne b_{i} ),表示树中一条连接顶点 ai a_{i} bi b_{i} 的边。

    接下来 mm 行包含查询。第 jj 行包含两个整数 vj,kj v_{j}, k_{j} 1vjn 1 \le v_{j} \le n ; 1kj105 1 \le k_{j} \le 10^{5} )。

    输出格式

    输出 mm 个整数,按输入中查询出现的顺序依次输出每个查询的答案。

    样例

    8 5
    1 2 2 3 3 2 3 3
    1 2
    1 5
    2 3
    2 4
    5 6
    5 7
    5 8
    1 2
    1 3
    1 4
    2 3
    5 3
    
    2
    2
    1
    0
    1
    
    4 1
    1 2 3 4
    1 2
    2 3
    3 4
    1 1
    
    4
    

    样例1解释

    在有根树(根节点为 rr)中,顶点 vv 的子树是指满足条件 dist(r, v)+dist(v, u)=dist(r, u)dist(r,\ v) + dist(v,\ u) = dist(r,\ u) 的所有顶点 uu 的集合。其中 dist(x, y)dist(x,\ y) 表示顶点 xxyy 之间最短路径的边数。

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 树和查询