首页 > 其他分享 >图中环学习指南

图中环学习指南

时间:2023-10-16 20:55:05浏览次数:36  
标签:学习指南 cnt int 中环 tot vis dfn dfs

无向图求最大环长度

/*
时间戳+dfs->求最大环的长度 (无向图)

*/
const int N=2e5+10;
//b数组:找出每个连通块的最大环,
//dfn数组:为每个节点打上时间戳,演变为一颗深度优先搜索树
int tot,b[N],dfn[N];
bool vis[N];
vector<int> e[N];
int n;
void dfs(int u,int cnt){
    //cnt-dfn[u]为环的大小
    if(vis[u]) {b[tot]=max(b[tot],cnt-dfn[u]);return;}
    dfn[u]=cnt;
    vis[u]=1;
    for(auto v:e[u]) dfs(v,cnt+1);
}
int main() {
    for(int i=1;i<=n;i++){
        if(!vis[i]) dfs(i,0);
    }
    return 0;
}

标签:学习指南,cnt,int,中环,tot,vis,dfn,dfs
From: https://www.cnblogs.com/taotao123456/p/17768327.html

相关文章

  • 并查集学习指南
    前置芝士并查集思想[find][python]#pythonwhiledeffind(x:int)->int: whilex!=fa[x]: x=fa[x]=fa[fa[x]] returnx#python递归deffind(x:int)->int: iffa[x]!=x: fa[x]=find(fa[x]) returnfa[x][c++]//c++whilelambda/*function<int(int)>fi......
  • 线段树高阶学习指南
    前置芝士线段树基本框架区间求和constintN=100010;lla[N],st[N*4],f[N*4];intn,q;//向上传voidpushup(llu){st[u]=st[lc]+st[rc];}//向下传voidpushdown(llu,lll,llr,llmid){if(f[u]){st[lc]+=f[u]*(mid-l+1);st[rc]+=f[u]*(r-m......
  • Ubunte技术学习指南
    安装gcc并检测终端命令sudoaptinstallgccgcc--version//查看版本号,检测是否正确安装创建.c文件touchtest.cvimtest.c//进入vim,进行编程序,退出:进入命令指令系统,:wqgcctest.c//生成a.out./a.out//运行c语言程序......
  • 《MySQL与MariaDB学习指南》高清高质量 原版电子书PDF+源码
    下载:https://pan.quark.cn/s/2392eb287424......
  • 基环树学习指南
    基环树学习指南前置芝士一个图中包含n个点n条边,且图中只存在一个环,这样的图被称为基环树(环套树)。基环树比树多了一条边,从而形成了一个环。基环树可以看做以坏点为根的一颗颗子树构成。三大分类基环无向树基环内向树(每个点有且只有一条出边)基环外向树(每一个点只有一条入边)[......
  • windows系统中环境系统变量和用户变量的区别
    前言--什么是环境变量一般我们安装软件之后,为了能够在cmd命令行运行软件,一般都需要设置一下环境变量,否则就会出现找不相关命令的错误提示。所谓环境变量,可以简单理解为就是给操作系统定义的一些路径和名称。比如使用最常使用的就是名为Path的环境变量,该环境变量就指示了可执行......
  • 《Python数据分析基础教程:NumPy学习指南.第2版》高清高质量PDF电子书+源码
    罕见的NumPy中文入门教程,Python数据分析首选从最基础的知识讲起,手把手带你进入大数据挖掘领域囊括大量具有启发性与实用价值的实战案例下载:https://pan.quark.cn/s/730b594117c0......
  • Java版剑指offer:链表中环的入口结点
    Java版剑指offer:链表中环的入口结点描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表返回值描述:返回链表的环的入口结点即可。而我们后台程序......
  • 初学者如何高效的学习Flutter?这份快速入门Flutter学习指南,拿走不谢
    什么是FlutterFlutter是Google推出并开源的移动端开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言开发App,一套代码可以同时运行在iOS和Android平台。2018年12月,Google发布Flutter1.0。从那时候开始,Flutter以迅雷不及掩耳之势,迅速崛起,并稳固了其在市场上......
  • 链表中环的入口结点
    title:链表中环的入口结点date:2023-07-2511:57:00tags:-c/c++categories:-算法-笔试top:链表中环的入口结点题目来自acwing题目(点击跳转)给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。数据范围节点val值取值范围[1,1000]。节......