#P12562. [UTS 2024] Two Trees

    ID: 12414 远端评测题 3000ms 256MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>线段树2024树链剖分UOI(乌克兰)

[UTS 2024] Two Trees

Description

给定两棵相同的无向树 GGHH,每棵树包含 nn 个顶点。两棵树被称为相同,当且仅当对于所有顶点对 (u,v)(u,v)GG 中存在边 (Gu,Gv)(G_u,G_v) 当且仅当 HH 中存在边 (Hu,Hv)(H_u,H_v)

某些顶点可以通过无向边连接到另一棵树中的对应顶点。特别地,叶子顶点 GvG_v 可以直接连接到顶点 HvH_v。如果叶子顶点 GvG_v 直接连接到 HvH_v,则称顶点 vv启用状态,否则为禁用状态。

初始时,所有叶子顶点均为禁用状态。需要处理以下两种查询:

  1. 11 vv —— 切换顶点 vv 的状态(若当前为禁用则改为启用,反之亦然);
  2. 22 uu vv —— 输出从顶点 GuG_u 到顶点 HvH_v 的最短路径长度。

Input Format

第一行包含两个整数 nnqq (3n21053 \le n \le 2 \cdot 10^5; 1q21051 \le q \le 2 \cdot 10^5) —— 分别表示顶点数和查询数。

接下来 n1n-1 行,每行包含两个整数 uu, vv (1u,vn)(1 \le u,v \le n) —— 描述树的边 (Gu,Gv)(G_u,G_v)(Hu,Hv)(H_u,H_v)

接下来 qq 行,每行描述一个查询。查询有两种形式:

  • 11 vv (1vn)(1 \le v \le n) —— 切换顶点 vv 的状态;
  • 22 uu vv (1u,vn)(1 \le u,v \le n) —— 查询从 GuG_uHvH_v 的最短路径长度。

Output Format

对于每个第二类查询,输出一个整数表示最短路径长度。若路径不存在,输出 -1\texttt{-1}

7 11
1 2
2 3
1 4
2 5
4 6
4 7
1 6
1 3
2 1 6
2 1 2
1 7
2 5 4
2 6 3
1 6
1 3
1 5
2 6 3
2
3
5
4
6
3 2
1 2
1 3
1 3
2 1 2
3

Hint

kk 为第二类查询的数量。

  • 33 分):n16n \le 16q16q \le 16
  • 33 分):n16n \le 16q2105q \le 2 \cdot 10^5
  • 22 分):n2000n \le 2000q2105q \le 2 \cdot 10^5k5k \le 5
  • 88 分):n2000n \le 2000q2000q \le 2000
  • 99 分):n2105n \le 2 \cdot 10^5q2105q \le 2 \cdot 10^5k5k \le 5
  • 3030 分):n2105n \le 2 \cdot 10^5q2105q \le 2 \cdot 10^5,且第二类查询后不会出现第一类查询;
  • 4545 分):无额外限制。

翻译由 DeepSeek V3 完成