06-图1 列出连通集

PTA 06-图1 列出连通集 这道题真是雪崩啊,!一个晚上做的DFS,发现遍历竟然是从小到大,诶,我辛辛苦苦用邻接表把他实现了一遍,发现每个连通集的数字顺序呢不对啊!。。为了纪念我逝去的时间,我还是打算先把我写的用邻接表储存的DFS贴出来!!!明天再码邻接矩阵实现!惯例,先贴题目。 给定一个有NN个顶点和EE条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N-1N−1编号。进行搜索时,假设我们总 阅读详情

题意

求一个图的DFS和BFS。

解题思路

用递归的方式DFS,利用队列来BFS

参考代码

#include <bits/stdc++.h>
using namespace std;
#define N 20
int Map[N][N];
bool used[N];
int n,e;
int flag=0;
void DFS(int x){
    printf("%d ",x);
    used[x]=true;
    for (int i=0;i<n;i++){
        if (used[i]) continue;
        if (Map[x][i]) DFS(i);
    }
}
void BFS(int x){
    queue<int> que;
    que.push(x);
    used[x]=true;
    while (!que.empty()){
        int x=que.front();
        for (int i=0;i<n;i++){
            if (used[i]) continue;
            if (Map[x][i]){
                que.push(i);
                used[i]=true;
            }
        }
        printf("%d ",x);
        que.pop();
    }
}
int main(){
    int x,y;
    cin>>n>>e;
    memset(Map,0,sizeof(Map));
    memset(used,false,sizeof(used));
    for (int i=0;i<e;i++){
        cin>>x>>y;
        Map[x][y]=Map[y][x]=1;
    }
    //DFS
    for (int i=0;i<n;i++){
        if (used[i]) continue;
        printf("{ ");
        DFS(i);
        printf("}\n");
    }
    //BFS
    memset(used,false,sizeof(used));
    for (int i=0;i<n;i++){
        if (used[i]) continue;
        printf("{ ");
        BFS(i);
        printf("}\n");
    }
    return 0;
}
APS生产排程系统——ERP、MES、APS系统的关联和区别 阅读详情

相关推荐

MUSIC算法翻车?Toeplitz矩阵重构如何解决DOA估计中的相干信源难题

本文深入探讨了MUSIC算法在相干信源DOA估计中失效的根本原因,并详细介绍了基于Toeplitz矩阵重构的协方差矩阵修复技术。该方法通过凸优化恢复协方差矩阵的理想结构,有效解决了信号子空间秩亏损问题,从而显著提升了MUSIC算法在相干和多径场景下的分辨精度与稳健性。

a2b3c4d5e的博客 249

漫步数学分析十四——连通集

定义3\textbf{定义3} 集合A⊂RnA\subset R^n为连通集,如果不存在两个非空开集U,VU,V,使得A⊂U∪V,A∩U≠∅,A∩V≠∅,A∩U∩V=∅A\subset U\cup V,A\cap U\neq\emptyset,A\cap V\neq\emptyset,A\cap U\cap V=\emptyset。直观上,集合U,VU,V将AA分成了两部分,并且如果的确如此,那么我

蜗牛 1万+

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

shuyisuisuinian的博客 2万+

7-1 列出连通集

7-1 列出连通集分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。

m0_65204357的博客 683

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

基于Simulink的电力电子负载特性模拟仿真实例

电阻性负载是最简单的负载形式,其阻抗为纯电阻,电流和电压之间的关系符合欧姆定律。电阻性负载的特点是消耗能量,不会存储能量。本示例将以一个典型的直流电源供电系统为例,展示如何利用Simulink进行不同负载特性的仿真模拟。直流电源:提供固定电压输入。逆变器(可选):根据需要产生PWM调制信号,驱动负载。负载模块:模拟不同类型的负载特性,如电阻性负载、电感性负载和容性负载。测量模块:用于观察负载上的电压和电流波形。系统架构视图plaintext深色版本v| || |

xiaoheshang_123的博客 429

PTA 7-1 列出连通集

给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。

Simon_Tilly的博客 1551

分享Charles抓包 显示<unknown> 解决方案 !

首先电脑上需要安装charles,然后需要设置手机上的WiFi设置,修改配置中的代理设置,把服务器的主机名设置成你电脑当前的ip地址(需要注意的是,你的代理服务器主机名的ip地址要和你当前连的ip地址的网段需要一致)。像 Charles 这样的工具,虽然功能强大,但仍然需要用户具备一定的配置和排障能力,以应对各种复杂的网络环境。通过将 Charles 的 SSL 证书正确安装到移动设备中,并在设置中启用“允许不安全的内容”选项,最终成功解决了这一问题,并准确抓取到所有请求数据。Charles 显示。

朱雀随云记的博客 8105

拓扑学之连通性

一个拓扑空间中的集合XXX称为连通集,如果不存在非空的、开且互不交的子集UUU和VVV,使得XU∪VXU∪V且U∩V∅U∩V∅。换句话说,连通集不能被分割成两个不重叠的开集。一个拓扑空间XXX是连通的,如果它的任何两个非空开集的交集都是非空的。更直观地说,连通空间不能被分割成两个不交的开集。在一个拓扑空间中,连通分量是最大连通子集。也就是说,连通分量是空间中最大的、无法再分割的连通部分。连通集与分离集:连通集无法分割成两个不交的开集,而分离集可以。

Major_S的博客 2850

jdbc从入门到精通(全)

前言 Java语言连接数据库(Java DataBase Connectivity) 面向接口/抽象编程(降低程序的耦合度,提高程序的扩展力)类似多态机制

码农研究僧的博客 1757

CloudCompare 二次开发(36)——非均匀体素降采样

使用CloudCompare与PCL编程实现的非均匀体素降采样。

点云侠的博客 745

7-1

#include #include using namespace std; void area(float a,float b,float c) { double s,area; if(a+b<=c) cerr<<"a+b<=c,error!"<<endl; else if(b+c<=a) cerr<<"b+c<=a,error!"<<endl; else

i_3ummer的专栏 319

【数据结构】考点二十八 : 二叉树的概念:二叉树的度、完全二叉树、满二叉数结点数、哈夫曼结点数、完全二叉树的深度

二叉树(Binary Tree)是一种常见的数据结构,它或者为空(null),或者由一个根节点(root node)和两个子树(left subtree 和 right subtree)组成,这两个子树又分别是一棵二叉树。二叉树的每个节点最多有两个子节点,通常称为左子节点(left child)和右子节点(right child)。

超越的博客 1737

06-图1 列出连通集 (25分)

06-图1 列出连通集   (25分) 给定一个有NN个顶点和EE条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N1N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数NN(0N100N≤10)和EE,分别是图的顶点数和边数。随后EE行,每行给出一条边的两个端点。每行中的数字之间

sysusyf的博客 1433

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PTA-06-图1 列出连通集

bfs dfs

Sukihasimoto的博客 271

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

06-图1 列出连通集 (25分)

给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。 输出格式: 按照"{v​1​​v​2​​...v...

听维也纳的海风 409

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 02-线性结构1 两个有序链表序列的合并
下一篇: 程序设计入门——C语言 翁恺 第1周编程练习
JinbaoSite0144
博客等级 码龄12年 231粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值