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$ ,无特殊限制。