1065: 无向图的连通分量计算

简介: 1065: 无向图的连通分量计算

题目描述


假设无向图G采用邻接矩阵存储,编写一个算法求连通分量的个数。


输入

第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。


输出

连通分量的个数。


样例输入

5

0 1 0 1 1

1 0 1 1 0

0 1 0 1 1

1 1 1 0 1

1 0 1 1 0


样例输出

1

#include <iostream>
using namespace std;
int n, ans;
const int N = 1010;
int g[N][N],st[N];
void dfs(int x, int y)
{
  st[x] = st[y] = 1;
  for(int i = 0; i < n; i++)
    if(!st[i])
      dfs(y ,i);
}
int main()
{
  cin>>n;
  for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
      cin>>g[i][j];
  for(int i = 0; i < n; i++){
    for(int j = 0; j < n; j++){
      if(g[i][j]&&!st[i]){
        dfs(i, j);
        ans++;
      }
    }
  }
  cout<<ans;
  return 0;
}


目录
相关文章
|
2月前
acwing 848 有向图的拓扑序列
acwing 848 有向图的拓扑序列
28 0
|
7月前
|
存储 算法
有向图和无向图的表示方式(邻接矩阵,邻接表)
有向图和无向图的表示方式(邻接矩阵,邻接表)
314 0
|
7月前
|
算法
图的应用(最小生成树,最短路径,有向无环图)
图的应用(最小生成树,最短路径,有向无环图
50 0
|
7月前
|
人工智能 算法 测试技术
【图论】【拓扑排序】1857. 有向图中最大颜色值
【图论】【拓扑排序】1857. 有向图中最大颜色值
|
存储 算法 搜索推荐
拓扑排序:求取拓扑序列
拓扑排序简单讲就是在可求拓扑序列的有向无回路图(有向无环图)中求取拓扑序列的排序算法。通俗讲就是按活动的先后次序进行排序的序列,并且每一个顶点只出现一次,它可以表述出完成某一项活动所需要的前置活动
83 0
拓扑排序:求取拓扑序列
|
存储 算法
SWUSTOJ 1057: 有向图的出度计算
SWUSTOJ 1057: 有向图的出度计算
116 0
|
算法 Java
利用Dijkstra算法求顶点v1到其他各顶点的最短路径Java实现
利用Dijkstra算法求顶点v1到其他各顶点的最短路径Java实现
121 0
利用Dijkstra算法求顶点v1到其他各顶点的最短路径Java实现
|
机器学习/深度学习
有向图,无向图的邻接矩阵和邻接表模板
有向图,无向图的邻接矩阵和邻接表模板
196 0
有向图,无向图的邻接矩阵和邻接表模板
邻接矩阵求顶点度
邻接矩阵求顶点度
307 0