#P2195. HXY 造公园

HXY 造公园

HXY 造公园

  • 时间限制:1 秒
  • 内存限制:128 MiB

题目描述

一个公园中有 nn 个休息点和 mm 条无向边。每条边的长度均为 11,并且初始图中不存在环。

你需要依次执行 qq 个操作:

  • 操作 1 x:查询点 xx 所在连通区域的最长简单路径长度。
  • 操作 2 x y:若 x,yx,y 已经连通,则忽略此次操作;否则,分别从 xx 所在区域和 yy 所在区域中选择一个休息点,在所选两点之间连接一条边。应当选择使合并后新区域的最长简单路径长度最小的连接方案。

路径长度是路径包含的边数。

输入格式

第一行包含三个整数 n,m,qn,m,q

接下来 mm 行,每行包含两个整数 xi,yix_i,y_i,表示 xi,yix_i,y_i 之间有一条无向边。

接下来 qq 行,每行表示一个操作:

  • 1 x 表示查询操作;
  • 2 x y 表示合并操作。

输出格式

对每个查询操作输出一行,表示对应连通区域的最长简单路径长度。

样例输入 1

6 0 6
2 1 2
2 3 4
2 5 6
2 3 2
2 5 3
1 1

样例输出 1

4

数据范围

对于所有数据:0m<n3×1050\le m<n\le 3\times 10^51q3×1051\le q\le 3\times 10^5,所有点编号均在 [1,n][1,n] 内,初始图是森林。

子任务编号 分值 特殊限制
1 10 只包含查询操作
2 20 n20n\le 20q5q\le 5
3 30 n2000n\le 2000q1000q\le 1000
4 40 无特殊限制