F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

wls 的树

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 411    Accepted Submission(s): 90


Problem Description
wls有一棵有根树,其中的点从$1$到$n$标号,其中$1$是树根。每次wls可以执行两种操作中的一个:

(1)选定一个点$x$,将以$x$为根的子树变成一条按照编号排序的链,其中编号最大的作为新的子树的根(成为原来$x$的父亲节点的儿子,如果原来$x$没有父亲节点则新的子树的根也没有父亲节点)。

(2)查询两个点之间的最短路径上经过了多少边。
 

Input
第一行一个整数$t$表示数据组数($t\le10$)。

每组数据第一行一个正整数$n$表示树上的点数($1\le n\le 100000$)。

接下来$n-1$行每行两个$1$到$n$之间的正整数表示一条树边。

接下来一行一个正整数$q$表示询问的个数($1\le q\le 200000$)。

接下来$q$行每行表示一个操作。第一种操作格式为$1\ x$,其中$x$为指定的树根。第二种操作格式为$2\ x\ y$,表示查询从$x$到$y$的路径。
 

Output
对于每个第二种操作,输出一行一个正整数表示答案。
 

Sample Input
1 4 1 2 1 3 2 4 2 1 2 2 2 3
 

Sample Output
3
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-22 11:08:26, Gzip enabled