双连通性(算法篇)

算法之双连通性

双连通性

概念

  • 双连通性就是当删除图中的一个顶点,使图分割成两个图,则这个图就具有双连通性,而能导致图分割成多张图的顶点称为割点
  • 背向边:当一个顶点被访问时,选取该顶点其中一个未访问过的邻接顶点进行访问没被选取到的邻接顶点与当前顶点形成的边称为背向边

寻找割点

  • 从图中任一顶点开始执行深度优先搜索并在顶点被访问时给它们编号。对于每一个顶点v我们称其先序编号为Num(v);

  • 对于深度优先搜索生成树上的每一个顶点v,计算编号最低的顶点,我们称之为Low(v);对于求解每个顶点的Low,需要对深度优先生成树进行一次后序遍历算出,因为求出顶点v的Low的规则如下:

    1. Num(v)
    2. 所有背向边(v,w)中的最低Num(w)
    3. 树的所有边(v,w)中的最低Low(w) --所以需要后序遍历
    4. Low(v)等于前面三个变量中的最小值。
  • 如果一个顶点v为割点,需要满足它的子节点wLow(w)>=Num(v)

实现代码:

struct listnode{int data;     //numbool flag;    //判断是否访问过int parent;     //父节点int low;listnode* next;
};int count=1;void findart(int v){an[v].flag= true;an[v].low=an[v].data=count++;listnode* p=an[v].next;while (p!= nullptr){if(!an[p->data].flag){an[p->data].parent=v;findart(p->data);if(an[p->data].low>=an[v].data){cout<<"V"<<v<<"为割点"<<endl;}an[v].low=min(an[v].low,an[p->data].low);}else if(an[v].parent!=p->data){an[v].low=min(an[v].low,an[p->data].data);}p=p->next;}}

尾言

完整版笔记也就是数据结构与算法专栏完整版可到我的博客进行查看,或者在github库中自取(包含源代码)

  • 博客1: codebooks.xyz
  • 博客2:moonfordream.github.io
  • github项目地址:Data-Structure-and-Algorithms

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.Softmax回归

回归和分类 回归估计一个连续值 分类预测一个离散类别 Softmax回归实际是一个分类问题 从回归到多类分类 对类别进行一位有效编码 y [ y 1 , y 2 , ⋯ , y n ] T y[y_1,y_2,\cdots,y_n]^T y[y1​,y2​,⋯,yn​]T,如果是第i类&#xff0c;则值为1&#xff0c;否则为0 使用…

用户对生活的需求,是三翼鸟创新的起点

这两天又长知识了&#xff0c;学到了一个网络新梗&#xff1a;City不City。 它源自于一种新的打卡方式&#xff0c;用于表达对某个城市的态度或感受。比如你跟朋友在城市游荡时&#xff0c;就可以随口问句City不City啊&#xff1f;通常被释义为“洋不洋气”“ 时髦不时髦”。 …

cpp的cbp

.cbp 文件是 Code::Blocks 的项目文件。Code::Blocks 是一个开源的跨平台集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于 C、C 以及 Fortran 编程。.cbp 文件包含有关项目的所有配置信息&#xff0c;包括文件路径、编译选项、链接器设置等。 以下是 .cbp 文件的…

部署YUM仓库及NFS共享功能

目录 一、YUM仓库服务 1、YUM仓库概述 2、准备安装源 2.1、软件仓库的提供方式 2.2、 RPM软件包的来源 3、YUM主配置文件 4、软件卸载 5、YUM源的提供方式 5.1、配置本地YUM源仓库 5.2、配置ftp源 5.2.1、服务端配置 5.2.2、客户端配置 二、NFS共享存储 1、NFS基…

Git 删除包含敏感数据的历史记录及敏感文件

环境 Windows 10 Git 2.41.0 首先备份你需要删除的文件&#xff08;如果还需要的话&#xff09;&#xff0c;因为命令会将本地也删除将项目中修改的内容撤回或直接提交到仓库中&#xff08;有修改内容无法提交&#xff09; 会提示Cannot rewrite branches: You have unstaged …

免费流程图工具 Draw.io Integration安装使用

Draw.io Integration 是 VS Code 上的一个插件&#xff0c;允许用户在 VS Code 中直接创建、编辑和查看 Draw.io 图表&#xff0c;如流程图、UML 图等。以下是 Draw.io Integration 插件在 VS Code 中的安装步骤&#xff1a; 安装步骤 确保 VS Code 已安装&#xff1a; 如果你…

YOLOv10训练自己的数据集(交通标志检测)

YOLOv10训练自己的数据集&#xff08;交通标志检测&#xff09; 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用YOLOv10训练自己的数据集进行交通标志检测准备数据进行训练进行预测进行验证 参考文献 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff…

每日一道算法题 204. 计数质数

题目 204. 计数质数 - 力扣&#xff08;LeetCode&#xff09; Python class Solution:def countPrimes(self, n: int) -> int:"""质数又称为素数&#xff0c;是一个大于1的自然数&#xff0c;除了1和它自身外&#xff0c;不能被其他自然数整除的数叫做质数…

【C++题解】1156 - 排除异形基因

问题&#xff1a;1156 - 排除异形基因 类型&#xff1a;数组基础 题目描述&#xff1a; 神舟号飞船在完成宇宙探险任务回到地球后&#xff0c;宇航员张三感觉身体不太舒服&#xff0c;去了医院检查&#xff0c;医生诊断结果&#xff1a;张三体内基因已被改变&#xff0c;原有…

Vscode连接存在私钥的远程服务器

编辑配置文件 # Read more about SSH config files: https://linux.die.net/man/5/ssh_configHost 172.17.x.xxxHostName 172.17.x.xxxUser xxxIdentityFile C:\Users\xxx\.ssh\xxx.pem会出现报错&#xff1a; Permissions 0644 for xxxx are too open. It is required that …

XML Schema 指示器

XML Schema 指示器 1. 引言 XML Schema 是一种用于定义 XML 文档结构和内容的语言。它提供了一种强大的方式来描述 XML 文档中允许的元素、属性和数据类型。XML Schema 指示器是在 XML Schema 定义中使用的一些特殊元素和属性,它们用于指示 XML 处理器如何解析和验证 XML 文…

vue-router路由路径

在配置 vue-router 路由时&#xff0c;path: ‘search’ 和 path: ‘/search’ 有不同的行为&#xff1a; 1.path: ‘search’: 这是一个相对路径。相对路径意味着这个路径是相对于父路径的。如果父路径是 /emergency&#xff0c;那么这个路由的完整路径是 /emergency/search…

QT 报错C2872: “byte“: 不明确的符号

这个错误提示是因为 byte 这个符号不明确&#xff0c;这种情况是由于代码中同时包含了多个同名符号的定义&#xff0c;编译器无法区分&#xff0c;从而导致错误。在这个问题中&#xff0c;可能是由于使用了 Winsock2.h 头文件中定义的 byte 宏与其他地方定义的 byte 符号重名&a…

Android Bitmap

在Android开发中&#xff0c;位图&#xff08;Bitmap&#xff09;是一个非常重要的图形处理对象&#xff0c;它用于在内存中存储图像数据。以下是关于Android中位图使用的一些关键点和方法&#xff1a; 一、获取位图 从资源文件中获取&#xff1a; 使用BitmapFactory类&#…

头歌资源库(24)插入加号

一、 问题描述 二、算法思想 可以使用动态规划来解决这个问题。 首先将数字串拆分为多个数字&#xff0c;用一个数组nums来存储每个数字。例如&#xff0c;数字串79846会被拆分为数组[7, 9, 8, 4, 6]。 然后定义一个二维数组dp&#xff0c;其中dp[i][j]表示在前i个数字中插入…

Java异常体系、UncaughtExceptionHandler、Spring MVC统一异常处理、Spring Boot统一异常处理

概述 所有异常都是继承自java.lang.Throwable类&#xff0c;Throwable有两个直接子类&#xff0c;Error和Exception。 Error用来表示程序底层或硬件有关的错误&#xff0c;这种错误和程序本身无关&#xff0c;如常见的NoClassDefFoundError。这种异常和程序本身无关&#xff0…

Java网络模型全扫盲

概述 讲述ava层面NIO基础知识&#xff0c;用作基础回顾所用 1. NIO概述 ​ 在Java中&#xff0c;NIO&#xff08;Non-blocking I/O 或 New I/O&#xff09;是Java SE 1.4及后续版本中引入的一套新的输入/输出操作API。 ​ 它与传统的IO模型相比&#xff0c;提供了更高的效率和…

【算法】二叉树-迭代法实现前后中序遍历

递归的实现就是:每一次递归调用都会把函数的局部变量&#xff0c;参数值和返回地址等压入调用栈中&#xff0c;然后递归返回的时候&#xff0c;从栈顶弹出上一次递归的各项参数&#xff0c;这就是递归为什么可以返回上一层位置的原因 可以用栈实现二叉树的前中后序遍历 1. 前序…

FastAPI 学习之路(四十四)WebSockets

我们之前的分析都是基于http的请求&#xff0c;那么如果是websockets可以支持吗&#xff0c;答案是可以的&#xff0c;我们来看下是如何实现的。 from fastapi import WebSocket, FastAPI from fastapi.responses import HTMLResponseapp FastAPI()html """&…

k8s NetworkPolicy

Namespace 隔离 默认情况下&#xff0c;所有 Pod 之间是全通的。每个 Namespace 可以配置独立的网络策略&#xff0c;来 隔离 Pod 之间的流量。 v1.7 版本通过创建匹配所有 Pod 的 Network Policy 来作为默认的网络策略 默认拒绝所有 Pod 之间 Ingress 通信 apiVersion: …