有 n 个点,m 条边的图,每条边有一种颜色。定义一条路(经过的点是c1,c2,…,ck)是彩虹路,要求满足 2 个条件:
-
对于所有 1≤i≤k−1,ci 和 ci+1 有边。
-
对于所有 1≤i≤2k−1,c2i 和 c2i−1 的边的颜色与 c2i 和 c2i+1 的边的颜色相同。
现在有 q 次操作:
-
x y z:向点 x 和 y 之间建一条颜色为 z 的边。
-
? x y:询问 x 点和 y 点之间是否有彩虹路。
有 $n$ 个点,$m$ 条边的图,每条边有一种颜色。定义一条路(经过的点是$c_1,c_2,\dots,c_k$)是彩虹路,要求满足 $2$ 个条件:
- 对于所有 $1 \le i \le k - 1$,$c_i$ 和 $c_{i+1}$ 有边。
- 对于所有 $1 \le i \le \dfrac{k-1}{2}$,$c_{2i}$ 和 $c_{2i-1}$ 的边的颜色与 $c_{2i}$ 和 $c_{2i+1}$ 的边的颜色相同。
现在有 $q$ 次操作:
1. `x y z`:向点 $x$ 和 $y$ 之间建一条颜色为 $z$ 的边。
2. `? x y`:询问 $x$ 点和 $y$ 点之间是否有彩虹路。