前言:
这篇文章还是是为了帮助一些
像我这样的菜鸟
找到简单的题解
问题描述:
给定一个无向图G,该图有n个顶点和m条边。
例如:图G的逻辑形式:
图G的邻接矩阵存储:
输入格式
第一行有两个整数n,m(1<n,m<100)
接下来有m行,每行两个整数u、v,代表u和v存在边。
输出格式
有n行,每行数据之间以空格隔开。
样例输入
5 6 1 2 1 3 1 5 2 4 3 5 4 5
样例输出
0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0
问题解析:
简单到炸
只要用一个二维数组
把两条边坐标格设置为1即可
完整代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,n,m,i,j;
cin>>n>>m;
int a[n+5][n+5];//设置数组
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
a[i][j]=0;//初始化为0
}
}
//也可以使用memset
//格式为 memset(数组名 , 要填充的东西 , 要填充的大小)
//本题为memset(a,0,sizeof(a));
for(i=1;i<=m;i++)
{
cin>>x>>y;
a[x][y]=1;//标记本条边
a[y][x]=1;//注意双向图
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout<<a[i][j]<<" ";//输出答案
}
cout<<endl;
}
return 0;
}