图论习题及答案
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;
}