Graph I - Graph

Posted mjn1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Graph I - Graph相关的知识,希望对你有一定的参考价值。

Graph

There are two standard ways to represent a graph G=(V,E)G=(V,E), where VV is a set of vertices and EE is a set of edges; Adjacency list representation and Adjacency matrix representation.

An adjacency-list representation consists of an array Adj[|V|]Adj[|V|] of |V||V| lists, one for each vertex in VV. For each uVu∈V, the adjacency list Adj[u]Adj[u] contains all vertices vv such that there is an edge (u,v)E(u,v)∈E. That is, Adj[u]Adj[u] consists of all vertices adjacent to uu in GG.

An adjacency-matrix representation consists of |V|×|V||V|×|V| matrix A=aijA=aij such that aij=1aij=1 if (i,j)E(i,j)∈E, aij=0aij=0 otherwise.

Write a program which reads a directed graph GG represented by the adjacency list, and prints its adjacency-matrix representation. GG consists of n(=|V|)n(=|V|) vertices identified by their IDs 1,2,..,n1,2,..,nrespectively.

Input

In the first line, an integer nn is given. In the next nn lines, an adjacency list Adj[u]Adj[u] for vertex uu are given in the following format:

ukv1v1 v2v2 ... vkvk

uu is vertex ID and kk denotes its degree. vivi are IDs of vertices adjacent to uu.

Output

As shown in the following sample output, print the adjacent-matrix representation of GG. Put a single space character between aijaij.

Constraints

  • 1n1001≤n≤100

Sample Input

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

Sample Output

0 1 0 1
0 0 0 1
0 0 0 0
0 0 1 0

#include <iostream>
using namespace std;
const int N = 100;

int main()
{
	int M[N][N];	// 0 0起点的邻接矩阵
	int n, u, k, v;
	
	cin >> n;
	for(int i = 0; i < n; ++ i)
	{
		for(int j = 0; j < n; ++ j)
		{
			M[i][j] = 0;
		}
	} 
	
	for(int i = 0; i < n; ++ i)
	{
		cin >> u >> k;
		u --;	// 转换为0起点 
		for(int j = 0; j < k; ++ j)
		{
			cin >> v;
			v --;	// 转换为0起点 
			M[u][v] = 1;	// 在u和v之间画出一条边 
		}
	}
	
	for(int i = 0; i < n; ++ i)
	{
		for(int j = 0; j < n; ++ j)
		{
			if(j)	cout << " ";
			cout << M[i][j];
		}
		cout << endl;
	}
	
	return 0;
} 

  

以上是关于Graph I - Graph的主要内容,如果未能解决你的问题,请参考以下文章

perf + Flame Graph火焰图分析程序性能

HDU4034Graph

判断二分图

Contig|scaffold|N50|L50|NG50|贪心算法|de bruiji graph|

我的项目仍在使用 graph-i-ql 而不是 Playground

hdu 4034 Graph floyd