#P3854. [TJOI2008] 通讯网破坏

[TJOI2008] 通讯网破坏

题目背景

由于争夺资源引起的矛盾冲突,A国和B国进入了战争一触即发的状态。现在A国的间谍机构设法得到了B国的通讯网络布置情况,其中每个城市可以看作一个点,在某些点之间有无向边,表示这些城市之间可以进行双向的直接通讯。A国打算先发制人,通过核武器毁灭某个中间城市M,一举切断B国某两个重要城市S,T之间的联系,即从图中删除掉M点之后,S和T变得不连通。但是由于B国的防御力量也很强大,这样的核打击只能成功进行一次且只能毁灭一个城市。

题目描述

现在A国的首脑提出了很多种作战策略,作为A国的首席计算机科学家,你的任务是编写一个程序决定这些策略可行与否。

输入格式

输入文件的第一行为两个整数N和M,表示B国的城市数和可以直接通讯的城市对数目。接下来的M行,每行包括两个整数Ci和Di (1 ≤ Ci, Di ≤ N 且 Ci ≠ Di),表示城市Ci 和Di之间可以直接通讯。输入数据保证每对(Ci,Di)最多出现一次。

接下来一行是一个整数Q,表示A国首脑作出的策略数。接下来的Q行,每行包括三个整数Si, Ti, Mi (1 ≤ Si, Ti, Mi ≤ N,且Mi,Si,Ti三个数互不相等),表示这个策略的内容是通过毁灭Mi来切断Si和Ti之间的联系。

输出格式

输出Q行,表示对应的策略可行与否。如果毁灭Mi以后,Si和Ti之间不能通讯,说明此策略可行,则应在第i行输出“yes”,否则输出“no”。

5 6
1 2
1 3
2 3
3 4
3 5
4 5
3
1 5 3
1 5 4
4 5 3

yes
no
no

提示

对于30%的数据,1 ≤ N ≤ 100, 1 ≤ Q ≤ 100

对于100%的数据,1 ≤ N ≤ 20000, 1 ≤ M ≤ 100000, 1 ≤ Q ≤ 100000

输入数据保证原图的任意两点是连通的。