AT_arc036_d [ARC036D] 偶数メートル

题目描述

高桥君所在的国家有 $N$ 座城市,编号为 $1$ 到 $N$。初始时没有道路,于是国家准备修建几条连接不同城市的双向道路。 由于高桥君很喜欢偶数,所以在从一座城市到达另外一座城市时,即使绕远路,或者走同一条路多次,也要使得走的总距离为偶数。但是在走过一条路后,高桥君不会马上再走一遍这条路。 高桥君有时会指定两座不同的城市,问他是否能用上述方式从其中一座走到另外一座。 由于国家还在建设道路,因此在不同时间提出的相同问题可能有不同的答案。

输入格式

第一行两个整数 $N,Q(1\le N,Q\le 10^5)$,表示城市数量和操作数量。 接下来 $Q$ 行每行四个整数 $w,x,y,z(1\le w\le2,1\le x,y\le N,x\ne y,1\le z\le 10^5)$。 - $w=1$,表示国家在 $x$ 和 $y$ 两座城市中修了一条长度为 $z$ 的双向道路。 - $w=2$,表示高桥君询问城市 $x$ 和 $y$ 能否通过他的走路方式互相到达,保证此时 $z=1$。 注意: - 相同的两座城市间可能有多条道路。 - 高桥君每次提问时,之前所有的道路都已建设完毕。

输出格式

对于每次高桥君的询问,若可行输出 ```YES```,否则输出 ```NO```。 by @[Larryyu](https://www.luogu.com.cn/user/475329)

说明/提示

### 部分点 この問題には部分点が設定されている。 - $ 1\ ≦\ N\ ≦\ 3,000\ ,\ 1\ ≦\ Q\ ≦\ 3,000 $ を満たすデータセットに正解した場合は $ 30 $ 点が与えられる。 - $ 1\ ≦\ N\ ≦\ 10^5\ ,\ 1\ ≦\ Q\ ≦\ 10^5 $ を満たすデータセットに正解した場合はさらに $ 70 $ 点が与えられる。合計で$ 100 $点となる。 ### Sample Explanation 1 各質問時点での街と道路の様子は以下のようになります。 左が $ 1,\ 2 $ つ目の質問の時の様子で、右が $ 3,\ 4 $ つ目の質問の時の様子です。 !\[\](/img/arc/036/Dsample1.png) $ 2 $ つ目の質問に対しては $ 2,\ 1,\ 3,\ 5 $ という順に道路を進むと移動距離の合計が $ 10 $ になります。 $ 3 $ つ目の質問に対しては $ 1,\ 4,\ 2,\ 1,\ 3,\ 5 $ という順に道路を進むと移動距離の合計が $ 20 $ になります。 $ 4 $ つ目の質問に対しては $ 3,\ 1,\ 2,\ 4,\ 1,\ 3,\ 5 $ という順に道路を進むと移動距離の合計が $ 22 $ になります。 ### Sample Explanation 2 $ 1 $ つ目の質問の時点では、そもそも街 $ 1 $ から街 $ 3 $ に行く方法がありません。よって答えは `NO` になります。 ### Sample Explanation 3 同じ $ 2 $ つの街に複数本の道路が敷設され得ることに注意してください。