69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main(void)
{
int N, M, Q;
int p, i, j, a, b;
/* 用二维表来表示a和b之间的关系,0表示没有关系,1表示有关系 */
int buf[100][100] = {0};
scanf("%d%d%d", &N, &M, &Q);
for (p = 0; p < M; p++) {
scanf("%d%d", &a, &b);
/* a和b有关系,则b和a也有关系 */
buf[a-1][b-1] = 1;
buf[b-1][a-1] = 1;
/* 对于每次输入,检测a和b与其他人的关系 */
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
/* 检测a行关系 */
if (buf[a-1][i] == 1 && buf[a-1][j] == 1)
buf[i][j] = 1;
/* 检测b行关系 */
if (buf[b-1][i] == 1 && buf[b-1][j] == 1)
buf[i][j] = 1;
}
}
}
for (p = 0; p < Q; p++) {
scanf("%d%d", &a, &b);
if (buf[a-1][b-1])
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
/*
输出结果:
3 1 2
1 2
1 2
Yes
1 3
No
*/