首页 > 其他分享 >[Tarjan] 学习笔记

[Tarjan] 学习笔记

时间:2023-08-18 10:25:03浏览次数:43  
标签:Tarjan min int top tarjan 笔记 学习 dfn low

原理

强连通分量

讲得超级屌,这次比董晓好得多

void tarjan(int x)
{
	dfn[x] = low[x] = t ++;
	s.push(x);
	in[x] = true;
	for (int i = h[x]; i ; i = e[i].next)
	{
		int y = e[i].to;
		if (!dfn[y])
		{
			tarjan(y);
			low[x] = min(low[x], low[y]);
		}
		else if (in[y])
			low[x] = min(low[x], dfn[y]);
	}
	if (dfn[x] == low[x])
	{
		while (s.top() != x)
		{
			in[s.top()] = false;
			cout << s.top() << ' ';
			s.pop();
		}
		in[s.top()] = false;
		cout << s.top() << '\n';
		s.pop();
	}
}

标签:Tarjan,min,int,top,tarjan,笔记,学习,dfn,low
From: https://www.cnblogs.com/hi-zwjoey/p/17639690.html

相关文章

  • 基于Spring Boot手把手博客系统企业级前后端实战-学习笔记
     一、springboot初始化工程1、网址:https://start.spring.io二、Gradle安装(绿色版)1、windows下-下载:http://downloads.gradle.org/distributions/gradle-3.5-bin.zip-解压:-配置环境变量:新建环境变......
  • Java学习笔记(十三)
    7.6 枚举类1、什么是枚举类?枚举类是指一种特殊的类,这种类的对象只有有限的固定的几个常量对象。2、什么情况会用枚举类呢?例如:Month类,Week类等等,他们的对象应该是固定的有限的几个。Month类:12个对象Week类:7个对象Season(季节)类:4个对象3、如何声明枚举类呢?在JDK1.5之前:(1......
  • Vue学习笔记:Vuex Part04 Getter
    Getter可以将store的state派生出一些状态,比如根据条件进行过滤Getter接受state作为其第一个参数,示例:conststore=createStore({state:{todos:[{id:1,text:'...',done:true},{id:2,text:'...',done:false}]},getters:{......
  • Python学习之十七_django的入门
    前言Python学习了一周,慢慢总结摸索.自己还是有多不会的地方.感慨这些年浪费的时间.所有的时间都是选择大于努力.努力最多感动自己.生活是需要的是正确的选择.平凡的实在人太难在一个固化的社会生存.共勉.安装因为安装的是社区版.所以与专业版不太一样.这次学习主......
  • 在生活的苦面前,学习的苦连个渣都不算,甚至都不能算痛苦
    创作声明:内容包含医疗建议299人赞同了该回答两种苦不存在高低优劣,在生活的苦面前,学习的苦连个渣都不算,甚至都不能算痛苦。我经常会遇到一些在职考生,不论是考公还是考研,这类人在社会的油锅里滚过一回后,终于悟出了学习的苦在毕业后的社会毒打面前,连渣都不算。......
  • 看到一个问题:真的有人觉得学习痛苦吗
    看到一个问题:真的有人觉得学习痛苦吗?我想问:真的有人觉得学习不痛苦吗?就算是我有点兴趣的科目,长时间专注于琐碎重复的知识点,解题,也会觉得无聊无趣,想刷视频,大脑休息学习就是很累想要有所成就,有所改变的学习更因如此在更短的时间内,用更累的方法去学,就是逆袭也是至始至终......
  • 感觉学习苦,是没挨过生活的耳光
    作者:富叔链接:https://zhuanlan.zhihu.com/p/36565463来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。为什么大多数人宁愿吃生活的苦,也不愿吃学习的苦?作者:Ray先森(富书签约作者)一、为什么大多数人宁愿吃生活的苦,也不愿吃学习的苦?记得小时候在县城......
  • 【技术积累】Docker部署笔记
    服务器环境搭建nacos镜像使用宝塔Docker管理器直接拉起nacos环境并运行注意:在同一台服务器中,nacos只对内网才能注册,图中172.17.0.2是内网地址,在多台服务器中需要跨ip注册服务需要百度自行学习,本次部署使用同一台服务器部署。启动命令//加内存限制启动dockerrun\--nam......
  • 笔记整理--C语言--linux下错误的捕获:errno和strerror的使用——转载
    linux下错误的捕获:errno和strerror的使用经常在调用linux系统api的时候会出现一些错误,比方说使用open()、write()、creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。在程序代码中包含#include<e......
  • dp 凸优化学习笔记
    好久没系统地写一个算法相关内容的学习笔记了,主要是我学习dp凸优化部分有意义,有象征性的例题。目前网上很多题解都有点讲的不明不白的感觉,很多甚至都连基本知识都没说清楚就开始SlopeTrick了,这困扰了我许久。我认为通过这篇文章可以比较清晰地了解dp凸优化的入门知识和......