图的存储(邻接矩阵 / 邻接表)


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 10M

Author:
Problem type
Allowed languages
C, C++

图的存储

题目描述

给定一个 \(n\) 个顶点 \(m\) 条边的无向图。请以邻接矩阵和邻接表的形式输出这一张图。

输入格式

第一行输入两个正整数 \(n\) 和 \(m\),表示图的顶点数和边数。

第二行开始,往后 \(m\) 行,每行输入两个以空格隔开的正整数 \(u,v\),表示 \(u,v\) 顶点之间有一条边直接相连。

输出格式

首先输出 \(n\) 行 \(n\) 列的矩阵,以空格隔开每一行之间的数表示邻接矩阵。第 \(i\) 行第 \(j\) 列的数为 \(1\) 则表示顶点 \(i,j\) 之间有一条边直接相连;若为 \(0\) 则表示没有直接相连的边。

再往后输出 \(n\) 行(邻接表)。第 \(i\) 行 按照从小到大的顺序,依次输出与顶点 \(i\) 直接相连的所有顶点。

输入输出样例 #1

输入 #1
5 5
1 2
2 3
3 5
1 3
3 4
输出 #1
0 1 1 0 0
1 0 1 0 0
1 1 0 1 1
0 0 1 0 0
0 0 1 0 0
2 2 3
2 1 3
4 1 2 4 5
1 3
1 3

说明/提示

数据保证,对于所有数据,\(1 \leq n \leq 1000\),\(1 \leq m \leq 10^5\),且图无重边无自环。


Comments

There are no comments at the moment.