#L3532. 「NOI2021」轻重边
「NOI2021」轻重边
题目描述
小 W 有一棵 个结点的树,树上的每一条边可能是轻边或者重边。
接下来你需要对树进行 次操作,在所有操作开始前,树上所有边都是轻边。
操作有以下两种:
-
给定两个点 和 ,首先对于 到 路径上的所有点 (包含 和 ),将与 相连的所有边变为轻边。然后再将 到 路径上包含的所有边变为重边。
-
给定两个点 和 ,计算当前 到 的路径上一共包含多少条重边。
输入格式
从文件 edge.in 中读入数据。
本题有多组数据。 输入数据第一行一个正整数 ,表示数据组数。 对于每组数据:
第一行包含两个整数 和 ,其中 表示结点数量, 表示操作数量。
接下来 行,每行包含两个整数 ,表示树上的一条边。
接下来 行,每行包含三个整数 ,描述一个操作,其中 表示第 1 类操作, 表示第 2 类操作。
数据保证 。
输出格式
输出到文件 edge.out 中。
对于每一次第 2 类操作,输出一行一个整数表示答案。
1
7 7
1 2
1 3
3 4
3 5
3 6
6 7
1 1 7
2 1 4
2 2 7
1 1 5
2 2 7
1 2 1
2 1 7
1
3
2
1