题目:http://lx.lanqiao.cn/problem.page?gpid=T110
解题思路:对于如下的有向图,有e1到e6共6条边,v1到v4共四个顶点。该图的关联矩阵为4*6的矩阵,每一列代表一条边,从左往右依次为e1到e6,每一行代表顶点,从上往下依次为v1到v4。对于每一列,表示一条边,这条边起点标注为1,这条边终点表示为-1。例如,e1也就是第一列,v2的位置为1,v1的位置为-1,表示一条从v2到v1的有向边,该列其他位置为0。
题目要求输入定点数和边数,然后输入每条边起点和终点,输出关联矩阵,附上我的解题代码。
我的解题代码:
#include<iostream>
using namespace std;
int arr[105][1005];//创建关联矩阵(二维)并将每个元素初始化为0,
//初始化为0不懂得可以百度全局变量和局部变量以及静态变量
int main()
{
int m, n;//n个顶点,m条边
cin >> n >> m;//输入
int a, b;//每次的起点顶点a,终点b
for (int i = 1; i <= m; ++i)//进行m次循环,输入m条边信息
{
cin >> a >> b;
arr[a][i] = 1;//将起点设置为1
arr[b][i] = -1;//终点-1
}
//输出关联矩阵
for (int i = 1; i <= n; ++i)//n个顶点,输出n行
{
for (int j = 1; j < m; ++j)//m条边,m列
{
cout << arr[i][j] << " ";
}
cout << arr[i][m] << endl;//思考为什么这儿输出再换行
}
//system("pause");//屏幕暂停,显示
return 0;
}
--------------------------------------------Yuanjrah