题库/Y1274

#Y1274. 树上数颜色

    传统题 难度: 提高 标签>一本通DFS进入序与子树区间线段树的建树、点改与区间查询bitset与批量位操作
时间限制3000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1274 · 树上数颜色

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制3000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

送你一棵nn个点的树,树根为11。一开始每个点上有一个1∼n1\sim n 的颜色cic_i,不同点颜色可以相同。 现在有 qq 次操作, 分为两种类型: 1  u  l  r1\;u\;l\;r:询问子树 uu 中有多少种在 ll 到 rr 之间的颜色至少出现了一次; 2  u  c2\;u\;c:将 uu 的颜色修改为 cc。 部分测试点要求强制在线。

输入

第一行三个整数n,q,tn,q,t,分别表示树的点数,操作的个数和是否强制在线。 t=0t=0表示不强制在线,t=1t=1表示强制在线。 接下来一行nn个整数 cic_i,表示每个点的初始颜色。 接下来n−1n-1行,每行两个整数uiu_i;viv_i表示一条uiu_i到viv_i的边。 接下来qq行,每行四个或三个整数,表示一个操作。 当t=1t=1时,需要对第一个数以外的其他数异或上一次询问的答案lastanslastans,初始时 lastans=0lastans=0。

输出

对于每个询问输出一行一个整数,表示答案。

输入样例

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

输出样例

0
3
1

提示

【输入样例2】
5 5 1
4 1 1 5 4
5 1
3 5
2 3
4 3
2 5 4
2 2 2
1 3 1 5
2 1 2
1 1 2 7
【输出样例2】
3
1

数据规模和约定

对于前20%的数据,n,q≤5000n,q≤5000。 对于前40%的数据,n,q≤50000n,q≤50000。 对于另20%的数据,没有修改操作。 对于另20%的数据,t=0t=0。 对于100%的数据,1≤n,q≤1000001≤n,q≤100000。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共6个测试点,非原站或官方原始数据。总分100分。