A91500.Welcome24ever 和公园

提高+/省选-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

现在有一个现成的公园,有 nn 个休息点和 mm 条双向边连接两个休息点(所有边长度均为 11)。这些点和边构成一片森林(保证不存在环)。

Welcome24ever 是一个强迫症患者,她打算施展魔法来改造公园并即时了解改造情况。她可以进行以下两种操作:

  1. 对某个休息点 xx,查询当前公园中与 xx 互相可达的所有休息点构成的连通块中,最长简单路径的长度(即该连通块的直径)。
  2. 对于两个休息点 x,yx,y,如果当前它们已经处在同一个连通块中,则忽略此次操作;否则:
    • 各自从 xx 所在连通块与 yy 所在连通块中分别任选一个休息点(可以选 x,yx,y 本身)用一条新边连接;
    • 该条新边长度为 11
    • 选择的这两个休息点应使得新连通块的最长路径长度尽可能小

Welcome24ever 一共会进行 qq 个操作,请你依次回答所有操作 1 的询问结果(操作 2 只会改变结构,不输出)。

注:

  • 所有边长度均为 11
  • 对于一个连通块,如果它的最长路径经过点列 v1,v2,,vkv_1, v_2, \dots, v_k(相邻两点之间有边),则该连通块的最长路径长度为 k1k-1

输入格式

  • 第一行,三个正整数 n,m,qn,m,q
  • 接下来 mm 行,每行两个正整数 xi,yix_i,y_i,表示 xix_iyiy_i 之间有一条双向边。
  • 接下来 qq 行,每行描述一个操作:
    • 若行首为 1,则为操作 1,后跟一个整数 xix_i
    • 若行首为 2,则为操作 2,后跟两个整数 xi,yix_i,y_i

保证初始图无环(是一片森林)。

输出格式

对每个操作 1 输出一行一个整数,表示该点所在连通块当前的最长路径长度。

输入输出样例

  • 输入#1

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

    输出#1

    4

说明/提示

数据范围

  • 对于 100%100\% 的数据,0m<n3×1050 \le m < n \le 3 \times 10^51q3×1051 \le q \le 3 \times 10^5
首页