#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
#define MAX 100002
#define NIL -1
int color[MAX] = {0};
int n, m;
vector<int> G[MAX];
int bfs(int r,int c) {
queue<int> Q;
Q.push(r);
color[r] = 1;
int i, j, k;
while( !Q.empty() ) {
k = Q.front();
Q.pop();
if ( k == c ) return k;
for ( i = 0; i < G[k].size(); i++ ) {
if ( color[G[k][i]] == 1 ) continue;
Q.push(G[k][i]);
color[G[k][i]] = 1;
}
}
return NIL;
}
int main() {
cin >> n >> m;
int i, j, k, p;
for ( i = 0; i < m; i++ ) {
cin >> j >> k;
G[j].push_back(k);
G[k].push_back(j);
}
cin >> m;
for ( i = 0; i < m; i++ ) {
for ( p = 0; p < n; p++ ) color[p] = 0;
cin >> j >> k;
if ( bfs(j, k) == NIL ) cout << "no" << endl;
else cout << "yes" << endl;
}
return 0;
}
07-19
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交