#Z2410. 代码填空:邻接表使用

代码填空:邻接表使用

#include <cstdio>
#include <iostream>
#include <vector>
using namespace std;
const int maxn = 105;
vector<int> G[maxn];
int main () {
    freopen("use.in", "r", stdin);
    freopen("use.out", "w", stdout);
    int n, m, a, x, y;
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        cin >> a >> x >> y;
        if (a == 0) { // 需要在 if-else 结构里添加相应的代码
    
        } else {
      
        }
    }
    for (int i = 0; i < n; i++) {
        cout << i << ":"; // 需要在下面添加一些代码
    
      
    }
    return 0;
}

这一节我们来复习下前面刚学的邻接表的使用。给出一个包含有向图和无向图的混合图 G,图上有 n 个点和 m 条边,现在你需要使用邻接表来存储该混合图 G 并按格式输出邻接表。

在这个题目中,我们已经帮你写好了大部分代码,需要你完成剩下的代码填空。需要填空的地方已经用注释进行了标注。在填空时,你只需要在相应位置填上正确的代码即可。

输入格式 输入第一行为两个正整数 n 和 m1n,m100(1 \leq n, m \leq 100),表示混合图上的 n 个点和 m 条边,两数之间以一个空格分隔。

接下来输入 m 行,每行输入三个整数 a,x,y(0a10x,y<n0 \leq a \leq 1,0 \leq x,y < n),表示点 x 和点 y 之间有一条边。如果 a = 0,则表示该边为有向边,如果 a = 1,则表示该边为无向边,相邻两数之间以一个空格分隔。

输出格式 输出邻接表,输出 n 行,第 i 行表示第 i 个点连接边的情况,首先输出 i,接着输出:,然后输出所有点 i 能到达的点的编号,边关系中后出现的点先输出。每个整数前有一个空格,具体格式见样例。

样例输入

4 4
0 0 1
1 0 2
0 3 1
1 2 3

样例输出

0: 2 1
1:
2: 3 0
3: 2 1