图论习题及答案


A - Graph

例题链接:

https://vjudge.net/contest/490112#problem/A

题目来源:

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_11_A

题目思路:

给你一个无向图的很多串邻接链表,你需要将这些邻接链表转换成邻接矩阵的形式

容易格式错误的地方:

这个题需要注意每一行输出的最后不能有空格
所以需要判一下

题目代码:

点击查看代码
#include
using namespace std;

int u[105];
int k[105];
int v[105];
int a[105][105];

int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>u[i];
		cin>>k[i];
		for(int j=1;j<=k[i];j++){
			cin>>v[j];
			a[u[i]][v[j]]=1;
		}
	}
	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(j==n){
				if(a[i][j]){
					cout<<"1";
					continue;
				}
				else{
					cout<<"0";
					continue;
				}
			}
			if(a[i][j]==1){
				cout<<"1"<<" ";
			}
			else{
				cout<<"0"<<" ";
			}
			
		}
		cout<

B - Depth First Search

题目链接:

https://vjudge.net/contest/490112#problem/B

题目来源:

https://judge.u-aizu.ac.jp/onlinejudge/solution.jsp?pid=ALDS1_11_B

代码:

点击查看代码
#include
#define N 100
#define WHITE 0
#define GRAY 1
#define BLACK 2
using namespace std;


int n,M[N][N];
int color[N],d[N],f[N],tt;

void dfs_visit(int u){
	int v;
	color[u]=GRAY;
	d[u]=++tt;
	for(v=0;v>n;
	for(i=0;i>u>>k;
		u--;
		for(j=0;j>v;
			v--;
			M[u][v]=1;
		}
	}
	dfs();
	return 0;
}