QOJ.ac

QOJ

実行時間制限: 4 s メモリ制限: 512 MB 満点: 100

#7507. Ald

統計

给定一棵树,树有 $n$ 个顶点,编号从 $1$ 到 $n$。

我们将顶点 $a$ 和 $b$ 之间的路径记为 $(a, b)$。路径的 $d$-集定义为树中距离路径上至少一个顶点的距离不超过 $d$ 的所有顶点的集合。例如,路径的 $0$-集就是该路径上的所有顶点。顶点之间的距离定义为它们在树上路径的边数。

设 $S$ 为树上路径的多重集。初始时,$S$ 为空。你需要处理以下查询:

  • “1 $u$ $v$”:将路径 $(u, v)$ 加入 $S$ ($1 \le u, v \le n$)。
  • “2 $u$ $v$”:从 $S$ 中删除一条路径 $(u, v)$ ($1 \le u, v \le n$)。注意 $(u, v)$ 和 $(v, u)$ 表示同一条路径。例如,如果 $S = \{(2, 3), (2, 3)\}$,执行查询 “2 3 2” 后,$S = \{(2, 3)\}$。保证在执行此查询前,$S$ 中至少存在一条路径 $(u, v)$ 或 $(v, u)$。
  • “3 $d$”:输出 $S$ 中所有路径的 $d$-集的交集大小 ($0 \le d \le n$)。如果 $S$ 为空,输出 $0$。

输入格式

第一行包含一个整数 $t$,表示测试用例的数量 ($1 \le t \le 10^4$)。接下来是各测试用例。

每个测试用例的第一行包含两个整数 $n$ 和 $q$ ($1 \le n, q \le 10^5$),分别表示树的顶点数和查询数。

接下来的 $n - 1$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示树的第 $i$ 条边连接的顶点编号 ($1 \le u_i, v_i \le n$)。

随后的 $q$ 行包含题目描述格式的查询。

所有测试用例的 $n$ 之和不超过 $10^5$。所有测试用例的 $q$ 之和不超过 $10^5$。

输出格式

对于每个第三类查询,输出一行答案。

样例

输入 1

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

输出 1

0
7
3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.