社区讨论

为什么不能用邻接矩阵呢?

P1551亲戚参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo15l02k
此快照首次捕获于
2023/10/22 15:34
2 年前
此快照最后确认于
2024/08/16 22:23
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
bool ok[5010][5010];
int main()
{
	int a,b,n,m,p;
	scanf("%d%d%d",&n,&m,&p);
	for (int i=1;i<=n;i++)
		ok[i][i]=true;
	for (int i=1;i<=m;i++) {
		scanf("%d%d",&a,&b);
		ok[a][b]=true;
		ok[b][a]=true;
		for (int j=1;j<=n;j++) {
			if (ok[b][j]) {
				ok[a][j]=true;
				ok[j][a]=true;
			}
			if (ok[a][j]) {
				ok[b][j]=true;
				ok[j][b]=true;
			}
		}
	} 
//	for (int i=1;i<=n;i++) {
//		for (int j=1;j<=n;j++)
//			if (ok[i][j]) cout<<"1 ";
//			else cout<<"0 ";
//		cout<<endl;
//	} 
	for (int i=1;i<=p;i++) {
		scanf("%d%d",&a,&b);
		if (ok[a][b]) cout<<"Yes"<<endl;
		else cout<<"No"<<endl; 
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...