U283438 胡须
题目背景
对于一个由 $n$ 个点,$n-1$ 条边组成的树,且这个树每条边要么是黑色的要么是白色的,我们称其为胡须树。
题目描述
于给定的胡须树,有以下三种操作:
1. 把第 $i$ 条边染黑,保证这条边之前是白色的。
2. 把第 $i$ 条边染白,保证这条边之前是黑色的。
3. 输出点 $u$ 到 $v$ 的最短路径长,要求路径上的边都是黑色的。如果不存在这样的路径,输出 $-1$。
初始时,**所有边都是黑色的**。
输入格式
每个测试点只有一组数据。
第一行为一个整数 $n$,表示点的个数。点的编号为 $1,...,n$。
接下来 $n-1$ 行,每行两个整数 $u, v$,表示一条边。第 $i$ 个输入的边的编号即为 $i$ 。
接下来一行为一个整数 $m$ ,表示操作的个数。
接下来 $m$ 行,每行第一个数字表示操作类型,具体如上所述。
输出格式
对于每一次第三种操作,输出一行表示相应的答案。
说明/提示
### 样例 1 解释
对于样例一,节点 1 和节点 2 通过编号为 1 的边连接,节点 2 和节点 3 通过通过编号为 2 的边连接。
### 数据范围
对于 $20\%$ 的数据有 : $n,m\le 2000$ 。
对于 $50\%$ 的数据有 : $n\le 10^5 , m\le 3\times 10^5$ ,且所有的操作 3 出现在操作 1,2 之后。
对于 $100\%$ 的数据有 : $n\le 10^5 , m\le 3\times 10^5$ ,无特殊限制。