#9916. 黑白树2(无数据)

    ID: 9916 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>点分治动态点集最近白点颜色翻转距离查询多重集合

黑白树2(无数据)

题目描述

给定一棵树,节点有黑白两种颜色,定义 dist(a,b)dist(a,b) 为点 aa 至点 bb 路径上的边个数。一开始所有的点都是黑色的。

要求作以下操作:

0 i 将点i的颜色反转(黑变白,白变黑);

1 v 询问 dist(u,v)dist(u,v) 的最小值。uu 点必须为白色( uuvv 可以相同),显然如果 vv 是白点,查询得到的值一定是 00

特别地,如果 1 操作时树上没有白点,输出 -1

输入格式

第一行中有一个整数 NN

在接下来的 N1N-1 行中,第 ii 行描述了第 ii 条边:带有两个整数 a b 的行表示 aabb 之间的边。

在下一行中,有一个整数 QQ 表示指令数;

在接下来的 QQ 行中,每行都包含一条指令 0 i1 v

输出格式

对于每个 1 v 操作,输出一个表示其结果的整数。如果树中没有白色节点,则应输出 -1

10
1 2
1 3
2 4
1 5
1 6
4 7
7 8
5 9
1 10
10
0 6
0 6
0 6
1 3
0 1
0 1
1 3
1 10
1 4
1 6
2
2
2
3
0

样例分析

如上所述。

数据范围与提示

对于 100%100\% 的数据,保证 N105N \le 10^5Q105Q \le 10^5