计蒜客习题:邻接表的使用


问题描述

这一节我们来复习下前面刚学的邻接表的使用。给出一个包含有向图和无向图的混合图 G,图上有 n 个点和 m 条边,现在你需要使用邻接表来存储该混合图 G 并按格式输出邻接表。
输入格式
输入第一行为两个正整数 n 和 m(1≤n,m≤100),表示混合图上的 n个点和 m 条边。接下来输入 m 行,每行输入三个整数 a,x,y(0≤a≤1,0≤x,y

AC代码

#include 
#include 
#include 
using namespace std;
vector<int> biao[110];
int main() {
  int m, n;
  cin >> n >> m;
  while (m--) {
    int a, b, c;
    cin >> a >> b >> c;
    if (a == 0)
      biao[b].push_back(c);
  if (a == 1) {
    biao[b].push_back(c);
    biao[c].push_back(b);
  }
  }
  for (int i = 0; i < n; i++) {
    int sz = biao[i].size();
    cout << i << ":";
    if(sz!=0) cout<< " ";

    for (int j = sz - 1; j >= 0; j--) {
      cout << biao[i][j] ;
      if (j!= 0)
        cout << " ";
    }
    cout << endl;
  }
  return 0;
}

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