图论习题及答案

A - Graph

例题链接:

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

题目来源:

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

题目思路:

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

容易格式错误的地方:

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

题目代码:

点击查看代码
#include<bits/stdc++.h>
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<<endl;
}
return 0;
}

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<bits/stdc++.h>
#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;v++){
if(M[u][v]==0){
continue;
}
if(color[v]==WHITE){
dfs_visit(v);
}
}
color[u]=BLACK;
f[u]=++tt;
}
void dfs(){
int u;
for(int u=0;u<n;u++){
color[u]=WHITE;
}
tt=0;
for(u=0;u<n;u++){
if(color[u]==WHITE){
dfs_visit(u);
}
}
for(u=0;u<n;u++){
printf("%d %d %d\n",u+1,d[u],f[u]);
}
}
int main(){
int u;
int v;
int k;
int i;
int j;
cin>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
M[i][j]=0;
}
}
for(i=0;i<n;i++){
cin>>u>>k;
u--;
for(j=0;j<k;j++){
cin>>v;
v--;
M[u][v]=1;
}
}
dfs();
return 0;
}
posted @   qjc0714  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
html
点击右上角即可分享
微信分享提示