计蒜客习题:邻接矩阵的使用


问题描述

这一节我们来复习下前面刚学的邻接矩阵的使用。给出一个包含有向图和无向图的混合图 G,图上有 n 个点和 m 条边,现在你需要使用邻接矩阵来存储该混合图 G 并按格式输出邻接矩阵。
输入格式
输入第一行为两个正整数 n 和 m(1≤n,m≤100),表示混合图上的 n 个点和 m 条边。接下来输入 m 行,每行输入三个整数 a,x,y(0≤x,y< n),表示点 x 和点 y 之间有一条边。如果 a=0,则表示该边为有向边,如果 a=1,则表示该边为无向边。
输出格式
输出一个 n×n 的邻接矩阵,矩阵中第 i 行第 j 列的值描述了点 i 到点 j 的连边情况。如果值为 0 表示点 i 到点 j 没有边相连,值为 1 表示有边相连。在每一行中,每两个整数之间用一个空格隔开,最后一个整数后面没有空格。
样例输入
4 4
0 0 1
1 0 2
0 3 1
1 2 3
样例输出
0 1 1 0
0 0 0 0
1 0 0 1
0 1 1 0


AC代码

#include 
#include 
#include 
using namespace std;
int pic[110][110];
int main() {
  memset(pic, 0, sizeof(pic));
  int n, m;
  cin >> n >> m;
  while(m--) {
    int a, b, c;
    cin >> a >> b >> c;
    if (a == 0)
      pic[b][c] = 1;
    else {
      pic[b][c] = 1;
      pic[c][b] = 1;
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      cout << pic[i][j];
      if (j != n - 1)
        cout << " ";
    }
    cout << endl;
  }
  return 0;
 }

你可能感兴趣的:(#,图论,算法竞赛刷题,计蒜客NOIP习题)