4277 - 资源推送

题目描述

小 W 是学校机房的管理员。机房里的 N 台电脑用 N-1 条网线连成了一个树形网络:每条网线连接两台电脑,且任意两台电脑之间的通信路径唯一。其中编号为 1 的电脑是服务器,即整棵树的根(我们称电脑 y 在电脑 x 的子树里,当且仅当电脑 x 处在电脑 y 到服务器 1 的路径上)。

学校购买了一批电子学习资源包,编号为 1, 2, \dots, 10^5,每个资源包都可以无限次分发。当小 W 把编号为 c 的资源包推送到电脑 x 时,电脑 x 子树里的所有电脑都会保存一份该资源包。同一台电脑重复收到同一编号的资源包时只保留一份。例如,一台电脑已保存资源包 [1,2,3],再收到编号为 4 的资源包后,它保存的资源包变为 [1,2,3,4]

推送了若干次之后,小 W 想了解资源的分发情况。定义电脑 x 的『资源丰富度』为它保存的不同资源包的总数。当小 W 查询电脑 x 时,你应该回答电脑 x 的子树中所有电脑的资源丰富度之和。

输入

第一行,N 和请求数 Q

接下来 N-1 行每行两个用空格隔开的数 ab,表示电脑 ab 之间有一条网线相连。

最后 Q 行每行一个请求,格式及对应含义如下:

  • 1 x c(修改):表示小 W 把编号为 c 的资源包推送到电脑 x,使得其子树上所有电脑都保存一份。
  • 2 x(询问):询问电脑 x 的子树中所有电脑的资源丰富度之和。
输出

对于每个询问,输出所询问子树的资源丰富度之和。

样例

输入

4 8
1 2
1 3
1 4
2 1
1 2 9
2 1
1 1 9
2 1
2 2
1 1 3
2 4

输出

0
1
4
1
2

输入

6 11
1 2
1 3
3 4
3 5
2 6
1 3 2
2 1
2 3
1 6 5
2 2
1 1 2
2 1
2 3
1 4 7
2 3
2 4

输出

3
3
1
7
3
4
2

输入

9 15
1 2
1 3
2 4
2 5
3 6
6 7
6 8
4 9
1 2 3
2 1
1 6 3
2 3
1 1 3
2 1
1 2 3
2 2
1 4 5
1 9 5
2 2
2 4
1 3 8
2 1
2 7

输出

4
3
9
4
6
4
15
2
说明

样例说明

样例 1

树是一个以 1 为中心的"星形"。注意第二次推送 1 1 9 时,电脑 2 已保存资源包 9,只有电脑 1,3,4 是新增的。

样例 2

第一次推送后,电脑 3,4,5 各保存了资源包 2,因此查询电脑 1 和电脑 3 的答案都是 3

向电脑 6 推送资源包 5 后,电脑 2 的子树(电脑 2,6)丰富度之和为 0+1=1

向服务器推送资源包 2 后,全部 6 台电脑都保存了资源包 2(电脑 3,4,5 原本已保存,不重复计算),此时查询电脑 17。最后向电脑 4 推送资源包 7,电脑 4 保存 {2,7},查询电脑 31+2+1=4

数据范围与提示

对于 100\% 的数据,1\le N,Q,c\le 10^51\le a,b,x\le N,输入给出的 N-1 条网线保证构成一棵树。

本题共 20 个测试点,每个测试点 5 分。具体数据范围如下:

测试点编号N \leQ \le特殊性质
1520
2,310^22\times 10^2
4 \sim 610^32\times 10^3
710^510^5A
8 \sim 1410^510^5
1510^510^5B
1610^510^5A、C
1710^510^5D
1810^510^5E
1910^510^5
2010^510^5

特殊性质 A:树是一条链。

特殊性质 B:树是以服务器 1 为中心的星形树,即除服务器外每台电脑都直接连接服务器。

特殊性质 C:所有推送请求的资源包编号都相同。

特殊性质 D:所有推送请求都推送到服务器 1

特殊性质 E:所有请求均为询问请求。

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 2 枚
难度 基础


上一题 下一题