CF2155F.Juan's Colorful Tree
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
胡安有一棵美丽的树,包含编号从 1 到 n 的 n 个节点。还有 k 种不同的颜色,编号从 1 到 k。树中的每个节点 u 都有自己的颜色集合 Cu。用 s 表示所有集合大小的总和,即 s=∑i=1n∣Ci∣。
有 q 次查询,每次给出节点 u 和 v。用 P 表示从 u 到 v 的简单路径(包括端点)上的所有节点集合。对于每次查询,你需要计算以下值:
w∈P⋂Cw
也就是说,路径上所有节点的颜色集合的交集的基数。换句话说,计算在从 u 到 v 的路径上每个节点的颜色集合中都出现的颜色数量。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤104)。接下来是测试用例的描述。
每个测试用例的第一行包含四个整数 n、k、s 和 q(1≤n,k,q≤3⋅105,1≤s≤min(nk,3⋅105))——分别是树中的节点数、不同颜色的数量、所有颜色集合大小的总和以及查询次数。
接下来的 n−1 行每行包含两个整数 u、v(1≤u,v≤n),表示节点 u 和 v 之间有一条边。
接下来的 s 行每行包含两个整数 v 和 x(1≤v≤n,1≤x≤k),表示颜色 x 在集合 Cv 中。所有 s 行都是两两不同的。
接下来的 q 行每行包含两个整数 u 和 v(1≤u,v≤n),表示一次查询,询问节点 u 和 v 之间的路径。
保证所有测试用例的 n 的总和不超过 3⋅105。
保证所有测试用例的 k 的总和不超过 3⋅105。
保证所有测试用例的 s 的总和不超过 3⋅105。
保证所有测试用例的 q 的总和不超过 3⋅105。
输出格式
对于每个测试用例,输出一行:按输入顺序输出所有查询的答案,用空格分隔。
输入输出样例
输入#1
2 3 5 10 4 1 3 2 1 1 1 1 2 1 3 1 4 1 5 2 1 2 2 2 5 3 1 3 2 1 3 2 3 1 2 1 1 9 3 12 10 7 2 2 4 6 8 9 6 2 1 5 8 2 5 3 9 1 3 6 1 9 3 9 1 5 1 2 3 8 1 4 3 5 3 8 3 7 3 3 1 4 7 1 4 4 5 5 5 4 2 9 9 2 2 2 2 5 2 7 3
输出#1
2 2 3 5 1 1 1 2 1 2 1 1 1 0
说明/提示
在第一个测试用例中,有一棵 3 个节点的树,边为 (1,3) 和 (2,1)。每个节点的颜色集合为:
- C1={1,2,3,4,5}
- C2={1,2,5}
- C3={1,2}
4 次查询分别对应节点对 (1,3)、(2,3)、(1,2)、(1,1),分别计算以下值:
- ∣C1∩C3∣=∣{1,2}∣=2
- ∣C2∩C1∩C3∣=∣{1,2}∣=2
- ∣C2∩C1∣=∣{1,2,5}∣=3
- ∣C1∣=∣{1,2,3,4,5}∣=5
输入解题思路,AI测评打分。不知道怎么写?