一个图的连通子图个数

2023-05-16

问题描述:给出一个无向图,输出图中连通分支的个数。无向图的连通分支是一个子图,因此在子图两个节点之间至少存在一个路径。

 输入:给出一个连通图的二维数组

01000

10100

01000

00000

00000

输出:联通子图的个数

思路:从二位数组的第一行开始遍历,只遍历上三角(因为无向图是对称的),遍历第i行如果map中没有i把i加入到map中,然后对第行的每个值进行遍历,当gid【i】【j】的值为1的时候,把j放入堆栈中,遍历完第行之后,对堆栈中的数据(j)出栈,把其放入map中,然后对第j行进行遍历,按照这个方式直到堆栈为空,Num++,计算出了一个联通子图。

代码:

#include<iostream>
#include<map>
#include<stack>
using namespace std;
int GetStack(int(*d)[5], int i, int n, stack<int> &st)
{
int j;
for(j = i;j<n;j++)
{
if(d[i][j] == 1)
{
st.push(j);
}
}
return st.size();
}


int GetChildGrape(int  (*gid)[5],int n)
{
stack<int> st;
map<int,int> mapstor;
int num =0;
int i;
for(i =0;i<n;i++)
{
if(mapstor.count(i)==1) continue;
else mapstor[i] = 1;
int result = GetStack(gid,i,n,st);
if(result ==  0)
{
num++;
}
else
{
while(st.size() != 0)
{
int tmp = st.top();
mapstor[tmp] = 1;
st.pop();
GetStack(gid,tmp,n,st);
}
num++;
}
}
return num;
}
int main()
{
int gid[5][5] ={{0,1,0,0,0},{0,0,1,0,0}};
int n = 5;
int result =  GetChildGrape(gid,n);
cout<<result<<endl;
}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个图的连通子图个数 的相关文章

  • Android版DailyInsist(五)——业务逻辑和数据操作SettingFragment & 小结

    最后一部分是提醒以及每天任务刷新 xff0c 两者都用到了 AlarmManager 这个系统管理类 提醒 提醒功能就是一个闹钟的效果 xff0c 只是这里是启动服务 xff0c 在服务里发一条notification作为提醒 设置时间时
  • IDEA项目的结构以及创建

    IDEA的项目结构应该怎么创建 一 在创建项目之前应该先知道IDEA项目的结构二 创建项目的步骤 一 在创建项目之前应该先知道IDEA项目的结构 idea项目的结构由三个部分组成 xff1a 分别是 项目 xff08 project xff
  • python插件安装--

    图像处理 安装opencv方式1 下载opencv xff0c 把cv2 pyd 放到 site packages pycharm ctrl 43 alt 43 s 找到 opencv python 直接安装 点击右下角的应用 Apply
  • RE: 从零开始的车载Android HMI(一) - Lottie

    1 前言 多年以前汽车还是以机械仪表主体的年代 xff0c 各大汽车主机厂商并不十分关注操作系统UI的交互功能 xff0c 但是随着车载SOC算力的不断提高以及主机厂商对汽车座舱竞争的白热化 座舱的HMI在设计上在强调功能性的同时也开始关注
  • Android 车载应用开发与分析(12) - SystemUI (一)

    1 前言 Android 车载应用开发与分析是一个系列性的文章 xff0c 这个是第12篇 xff0c 该系列文章旨在分析原生车载Android系统中核心应用的实现方式 xff0c 帮助初次从事车载应用开发的同学 xff0c 更好地理解车载
  • python 下xml和dict相互转化,含attributes

    from lxml import etree def dictlist node res 61 res node tag 61 xmltodict node res node tag reply 61 reply node tag 61 3
  • Manjaro 系统日常使用入门导引

    Manjaro 系统日常使用入门导引 作者 xff1a 林地宁宁 Arch Linux 简介 常听人说 Arch Linux 系统 xff08 以下简称 Arch xff09 是一款自由度极高的 Linux 发行版 xff0c 在维基百科上
  • SecureCRT产生log日志

    SecureCRT产生log日志 打开一个串口 xff0c 第一步 xff1a 第二步 xff1a 在这一步 xff0c 需要选择合适的端口号和波特率等 第三步 xff1a 选择 34 properties 34 第四步 xff1a 找到
  • 架构设计:生产者/消费者模式

    0 xff1a 概述 今天打算来介绍一下 生产者 xff0f 消费者模式 xff0c 这玩意儿在很多开发领域都能派上用场 由于该模式很重要 xff0c 打算分几个帖子来介绍 今天这个帖子先来扫盲一把 如果你对这个模式已经比较了解 xff0c
  • 1013 Battle Over Cities

    It is vitally important to have all the cities connected by highways in a war If a city is occupied by the enemy all the
  • 若依类项目spring boot多模块打包优化实践

    笔者最近工作的时候 xff0c 接到一个地产集团小程序的研发任务 xff0c 之前也没有相关经验 xff0c 于是就从网上找了一个类似的项目来改 xff0c 就是uniapp 43 若依 开发租房小程序 x1f389 租房小程序 xff0c
  • 分布式之数据库和缓存双写一致性方案解析

    本文转自博客园 作者 xff1a 孤独烟 原文链接 xff1a https www cnblogs com rjzheng p 9041659 html 为什么写这篇文章 首先 xff0c 缓存由于其高并发和高性能的特性 xff0c 已经在
  • Hexo操作指南-(命令)

    Hexo命令说明 xff1a Hexo官方文档 xff1a https hexo io zh cn docs hexo init 新建一个网站 hexo new 34 文章名 34 新建文章 hexo new page 34 页面名 34
  • 面试题:谈谈对进程的理解?谈谈你对线程的理解?2.进程死锁的原因?如何解决进程死锁?

    2 谈谈对进程的理解 xff1f 答 xff1a 首先进程是指在系统中正在运行的一个应用程序 xff1b 程序一旦运行就是进程 xff0c 或者更专业化来说 xff1a 进程是指程序执行时的一个实例 xff0c 即它是程序已经执行到课中程度
  • 编程小白用C语言完成"摸球问题"

    碰到问题 编写一个程序 xff0c 从 3 个红球 xff0c 5 个白球 xff0c 6 个黑球中任意取出 8 个球 xff0c 且其中必须有红球 xff0c 输出所有可能的方案 思路分析 依题意 必须有红球 即红球最少有1个 最多有3个
  • wxX11移植到arm板上

    原 移植wxX11到开发板上 2012 5 18阅读467 评论0 最近几天由于工作安排 xff0c 要将wxX11程序移植到arm开发板上 一连工作了好几天 xff0c 终于可以在板子上显示出一个 X 号 xff0c 并且可以运行wxWi
  • 13.3.2 搜索本地磁盘中所有媒体文件

    13 3 2 搜索本地磁盘中所有媒体文件 搜索本地磁盘中所有媒体文件可以利用 13 3 1 小节设计的 link add dir 函数 xff0c 将该函数搜索的路径设置为 如下列源代码所示 xff1a int link search li
  • 使用Systemctl命令来管理系统服务

    导读Systemctl是systemd用于管理系统和管理服务的工具 许多现代Linux发行版 xff0c 如Ubuntu Debian Fedora Linux Mint OpenSuSE Redhat都采用systemd作为默认的init
  • MySQL循环语句

    导读mysql常见的三种循环方式 xff1a while repeat和loop循环 还有一种goto xff0c 不推荐使用 Linux就该这么学 1 while循环 设置mysql分隔符为 xff0c 也就意味着 xff0c 当遇到下一

随机推荐

  • Controller和RestController的区别

    导读在springboot中 xff0c Controller RestController是使用控制器最常用的两个注解 xff0c 但是两者之家的差异你知道吗 xff1f 本文就是要讲述两者之间的区别 1 Controller RestC
  • 工作站和台式机的区别

    转自 xff1a 微点阅读 xff08 www weidianyuedu com xff09 微点阅读 范文大全 免费学习网站 工作站电脑非常高配 xff0c 那么它和台式机有什么区别呢 下面由小编给你做出详细的工作站和台式机区别介绍 希望
  • 抽象类不可以被实现,但可以有构造方法

    抽象类不可以被实现 xff0c 但可以有构造方法 xff01 在创建类的时候会调用对应类的构造方法 xff0c 抽象类不能被实例化 xff0c 按理来说在抽象类中写构造方法是没用的 xff0c 但抽象类的子类在被继承的时候必须实现抽象类中的
  • 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法

    matlab 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法 xff0c 它们是 自回归 AR 移动平均线自回归移动平均线自回归积分移动平均线 ARIMA 季节性自回归积分移动平均线 SARIMA 具有外生回归
  • Android自定义定时闹钟开发详解

    导读这篇文章主要为大家详细介绍了Android自定义定时闹钟开发 xff0c 文中示例代码介绍的非常详细 xff0c 具有一定的参考价值 xff0c 感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Android开发之自定义闹钟实现 xf
  • 如何在 Linux 上安装 AWS 命令行工具

    导读AWS CLI 是一个能够和 AWS 账户进行交互的命令行程序 开发者和系统管理员用它管理日常的活动和自动化 本文讲述如何一步步在 Linux 上安装 AWS CLI xff08 命令行工具 xff09 AWS CLI 是一个能够和 A
  • Python实现对比两个Excel数据内容并标出不同

    导读 日常工作中需要对比两个Excel工作表中的数据差异是很不方便的 xff0c 使用python来做就比较简单了 xff01 本文为大家介绍了python实现对比两个Excel的数据内容并标记出不同数据的示例代码 xff0c 需要的可以参
  • Python中列表遍历使用range和enumerate的区别

    导读这篇文章主要介绍了Python中列表遍历使用range和enumerate的区别 在Python编程语言中 xff0c 遍历list有range和enumerate方法 xff0c 本文结合示例代码给大家介绍的非常详细 xff0c 对大
  • ChatGPT 引入关闭聊天记录功能

    导读OpenAI 宣布在 ChatGPT 中引入了一项新功能 xff0c 允许用户关闭聊天记录 相关控件目前已面向所有用户推出 xff0c 可以在 ChatGPT 的设置中找到 xff0c 并且可以随时更改 公告指出 xff0c 用户在禁用
  • 虚拟机与主机互传文件方法分享

    现在虚拟机的使用已经非常普及 xff0c 无论新手学习 xff0c 还是运维工程师搭建虚拟化平台 xff0c 都会使用到虚拟机 对个人用户来说 xff0c 非常方便就能搭建很多操作系统进行学习 xff1b 对企业用户来说更是降低了服务器的硬
  • 在 Centos7 的KVM上启用嵌套虚拟化

    嵌套虚拟化 意味着在虚拟机内配置虚拟化环境 换句话说 xff0c 我们可以说嵌套虚拟化是虚拟机管理程序hypervisor的一个特性 xff0c 它允许我们通过虚拟化管理程序 xff08 宿主机 xff09 的硬件加速在虚拟服务器内安装和运
  • 详解:Linux Chrony 设置服务器集群同步时间

    导读Chrony是一个开源的自由软件 xff0c 像CentOS 7或基于RHEL 7操作系统 xff0c 已经是默认服务 xff0c 默认配置文件在 etc chrony conf 它能保持系统时间与时间服务器 xff08 NTP xff
  • Linux:快速查看IP地址及修改IP地址

    导读Linux下如何快速查看IP地址及修改IP地址 xff0c 有一个方法供参考 查ip 方法 步骤1 打开linux操作系统在进入到界面 方法 步骤2 在桌面右击打开终端 方法 步骤3 终端里输入ifconfig a命令在回车键 方法 步
  • Centos安装vncserver虚拟网络控制台

    虚拟网络控制台 xff08 VNC xff09 是一个图形桌面共享软件 xff0c 允许您使用键盘和鼠标远程控制另一台计算机 系统环境 服务端 xff1a Centos7 7 Minimal客户端 xff1a Windows10客户端VNC
  • java线程池线程超时关闭的两种我认为比较好的方式

    问题 xff1a 比如多线程进行io操作的时候 xff0c io的读取在等待的时候 xff08 比如telnet某端口时 xff0c 会长时间等待 xff09 xff0c 线程是不会关闭的 xff0c 这样导致线程不释放 xff0c 早晚凉
  • Ubantu 22.04.2安装教程 + VMWare Tools + 百度网盘 + Anaconda + Pycharm安装

    目录 前言 一 Ubantu安装 二 VMWare Tools安装 三 百度网盘安装 四 Anaconda 五 Pycharm 前言 最近在研究Linux xff0c 决定整合一下教程 xff0c 以便日后的师弟师妹使用 一 Ubantu安
  • 个性化定制你的命令行

    如果您很容易使shell 提示行变得色彩绚烂斓且带有更多信息 xff0c 为什么还要坚持用单调的标准 shell 提示行呢 xff1f 在这篇技巧中 xff0c Daniel Robbins 将说明如何获得符合您的意愿的shell提示行 x
  • Android中viewBinding的简单用法

    初级菜鸟 xff0c 正在向中级菜鸟努力 xff01 刚刚接触Android开发 xff0c 有好多东西都不太懂 xff0c 又喜欢忘东西 xff0c 干脆写博客记录一下吧 目录 在activity中使用viewBinding 在Fragm
  • python爬虫实战 | 批量爬取开放服务器的文件

    今天在查有关spss modeler的参考资料时 xff0c 发现了这个网站 xff1a ftp public dhe ibm com software analytics spss documentation modeler 14 2 z
  • 一个图的连通子图个数

    问题描述 xff1a 给出一个无向图 xff0c 输出图中连通分支的个数 无向图的连通分支是一个子图 xff0c 因此在子图两个节点之间至少存在一个路径 输入 xff1a 给出一个连通图的二维数组 01000 10100 01000 000