#C. 树上操作

    Type: Default 1000ms 128MiB

树上操作

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

树上操作

题目背景

题目描述

给定一棵以11号结点为根的nn个结点的有根树,并且给定以下两个操作:

W a:查询根结点到编号为aa的结点距离,每条边长度视为1。

A a b:将有一条边相连的编号为aa的结点和编号为bb的结点合并,即如果aabb的父亲,把aabb之间的边删除,将bb放到原来aa的位置,然后该结点同时继承原来的两个结点的所有编号(相当于查询aabb都是查询该结点)。

现保证AA操作恰好执行n1n-1次,并且每次执行时边都不一样,即最后这棵树会被合并成一个孤立点。要求输出所有WW操作的答案。

输入格式

第一行一个正整数nn

接下来n1n-1行每行两个正整数a,ba,b表示一条树边。

接下来一个正整数mm表示查询操作的次数。

接下来n1+mn-1+m行每行描述一个操作,包括n1n-1次合并操作和mm次查询操作,每次操作格式为“WW aa”或“AA aa bb”。

输出格式

mm行,对每次查询操作,输出答案。

样例 #1

样例输入 #1

5
1 2
1 3
2 4
3 5
4
W 5
A 1 3
W 5
A 2 4
W 2
A 1 2
W 4
A 3 5

样例输出 #1

2
1
1
0

提示

样例解释1:

原树中,1有两个儿子2和3,2有一个儿子4,3有一个儿子5,故第一次查询时1到5的距离为2。合并1和3之后,1到5的距离就变成了1,故第二次查询为1。合并2和4不影响1到2的距离,第三次查询为1。合并1和2之后查询1到4的距离,因为1和2已合并,2和4已合并,所以1到4的距离为0。

数据范围

30%30\%的数据,n30,m50n≤30,m≤50

100%100\%的数据,n,m250000n,m≤250000,读入树边时1a<bn1≤a<b≤n,查询操作时1an1≤a≤n,合并操作时1a<bn1≤a<b≤n,并且保证合并操作的边都是原来的树边。

国庆集训S组模拟赛2

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2023-10-6 9:00
End at
2023-10-6 13:00
Duration
4 hour(s)
Host
Partic.
27