P2978 [USACO10JAN] Tea Time S
题目描述
$N (1 \leq N \leq 1000)$ 头奶牛,编号为 $1 \dots N$,在参加一个喝茶时间活动。在喝茶时间活动开始之前,已经有 $M (1 \leq M \leq 2,000)$ 对奶牛彼此认识(是朋友)。第i对彼此认识的奶牛通过两个不相同的整数 $A_i$ 和 $B_i$ 给定($1 \leq A_i \leq N, 1 \leq B_i \leq N$)。输入数据保证一对奶牛不会出现多次。 在喝茶时间活动中,如果奶牛 $i$ 和奶牛 $j$ 有一个相同的朋友奶牛 $k$,那么他们会在某次的喝茶活动中去认识对方(成为朋友),从而扩大他们的社交圈。请判断,在喝茶活动举办很久以后(直到没有新的奶牛彼此认识),$Q (1 \leq Q \leq 100)$ 对奶牛是否已经彼此认识。询问j包含一对不同的奶牛编号 $X_j$ 和 $Y_j$($1 \leq X_j \leq N, 1 \leq Y_j \leq N$)。
例如,假设共有 $5$ 头奶牛,我们知道 $2$ 号认识 $5$ 号,$2$ 号认识 $3$ 号,而且 $4$ 号认识 $5$ 号;如下图 (a)。
```cpp
2---3 2---3 2---3
\ |\ | |\ /|
1 \ --> 1 | \ | --> 1 | X |
\ | \| |/ \|
4---5 4---5 4---5
(a) (b) (c)
```
在第一次喝茶活动中,$2$ 号认识 $4$ 号,$3$ 号认识 $5$ 号,如上图 (b) 所示。接下来的喝茶活动中,$3$ 号认识了 $4$ 号,如上图 (c) 所示。
输入格式
第 $1$ 行:三个空格隔开的整数:$N$,$M$ 和 $Q$。
第 $2 \dots M+1$ 行:第 $i+1$ 行包含两个空格隔开的整数 $A_i$ 和 $B_i$。
第 $M+2 \dots M+Q+1$ 行:第 $j+M+1$ 行包含两个空格隔开的整数 $X_j$ 和 $Y_j$,表示询问 $j$。
输出格式
第 $1 \dots Q$ 行:如果第 $j$ 个询问的两头奶牛认识, 第 $j$ 行输出 `Y`。如果不认识,第 $j$ 行输出 `N`。
说明/提示
感谢@蒟蒻orz神犇 提供翻译。