#P2607. Civilization

    ID: 2607 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划树状 DP树的直径数据结构并查集CodeForces

Civilization

题目描述

给出一个由 nn 个点,mm 条边组成的森林,有 qq 组询问。

  1. 给出点 xx,输出点 xx所在的树的直径
  2. 给出点 x,yx,y,(如果 x,yx,y 在同一棵树中则忽略此操作)选择任意两点 u,vu,v,使得 uuxx 在同一棵树中且 vvyy 在同一棵树中。将 u,vu,v 之间连一条边,使得连边后的到的新树的直径最小。

输入格式

第一行三个整数 n,m,qn,m,q,分别表示点的个数,边的个数和询问个数。

接下来 mm 行,每行两个整数 x,yx,y,表示有一条链接点 x,yx,y 的边。

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

  • 操作1:1 x
  • 操作2:2 x y

1m<n31051 \le m < n \le 3\cdot 10^51q31051 \le q \le 3 \cdot 10^5

输出格式

输出行数为操作 11 的个数,每行一个整数表示对应的操作一的答案。

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