首页 > 其他分享 >关于找环

关于找环

时间:2023-11-06 21:44:37浏览次数:33  
标签:int 找环 dfs ins fa 关于 printf

void dfs(int u, int from) {
	printf("%d -> %d\n", ~from ? e[from ^ 1] : -1, u);
	ins[u] = true;
	st[u] = true;
	if (~from) fa[u] = e[from ^ 1];
	for (int i = h[u]; ~i; i = ne[i]) {
		if (i == (from ^ 1)) continue ;
		int v = e[i];
		if (!st[v]) {
			dfs(v, i);
		}
		else if (ins[v]) {
			int t = u;
			while (t != v) {
				printf("%d ", t);
				t = fa[t];
			}
			printf("%d\n", v);
		}
	}
	ins[u] = false;
}
4 6
1 2
2 4
4 3
3 1
2 5
5 3

输出:

-1 -> 1
1 -> 3
3 -> 5
5 -> 2
2 -> 4
4 2 5 3
2 5 3 1

上面的方法只能判环,不能找环,枚举不到1 2 4 3这个环。

标签:int,找环,dfs,ins,fa,关于,printf
From: https://www.cnblogs.com/zhangchenxin/p/17813827.html

相关文章

  • 关于嵌入式QT QML 竖屏屏幕显示为横屏
    硬件平台:全志的A40I-H(从淘宝一家广州卖家买的开发板)软件平台:Linux内核版本3.10.65QT版本:5.9.0当时遇到的问题,在PC上运行一个qml的demo,是正常的横屏显示的。但是交叉编译过后,烧录到开发板子上面,发现是旋转了90度显示大致如下图所示: 当时非常的头大,如果按照文档上面,使用QT......
  • 关于用逆序数求解行列式的知识都在这里啦
    利用逆序求n阶行列式的值你知道怎么判断一组数字的逆序数吗?你会使用逆序计算这个行列式吗?这个四阶行列式千万不要展开求解......
  • 关于对iOS企业签名的类型如何选择,分别有什么优势
    了解过苹果签名的都知道苹果签名的方式有好几种,其中企业签名是其中使用最广泛,性价比最高的一种签名方式,企业签名还分以下三种签名方式,共享企业签名,稳定版企业签名,超稳版企业签名。大家可能还不太了解这三种签名方式的区别,今天大家就一起了解如何选择签名方式,选择哪一种签名方式......
  • 关于中断的分类和优先级(优先级由高到低排序)
    1.机器校验中断:高速程序发生了设备故障,比如电源故障,主存出错等2.访管中断:用户程序需要操作系统接入,调用操作系统服务等3.程序性中断:包括指令和数据的格式错误,程序执行中出现异常等4.外部中断:来自机器外部,包括定时器中断、外部信号中断、中断键中断等5.IO中断:由IO控制器产生,用......
  • 关于文件夹权限不够,引起的安装错误的处理方法
      文件夹没有权限,在更改文件夹的权限的时候会报各种错误,很多人在一报错的情况下,都不知道如何设置了。今天给大家带来一个用命令来处理这个问题的方法:假设文件路径为:C:\Windows\System32\en-US  比如:在安装软件的时候,报这个错误:用上面的设置文件权限的方法又报错的情况......
  • 关于Mac OS虚拟机下共享文件夹的方法
     1、确保左上角苹果标志的旁边是“Finder”;2、点击"Finder";3、选择“偏好设置设置”;4、然后在“通用”标签下勾选“已连接服务器”;5、重启。    FinderPreference--General--连接服务器 设置边栏: 重启之后可以看到共享文件夹: ......
  • 关于CP2102(USB转TTL模块)的驱动安装、电脑识别、接线
    一、CP2102与CH340对比特性CP2102CH340芯片制造商SiliconLabsWCH(江苏沁恒)接口USBUSB最大波特率1Mbps2Mbps支持操作系统Windows,Mac,LinuxWindows,Mac,Linux驱动程序需要安装驱动程序需要安装驱动程序兼容性较好较好价格稍贵......
  • 关于yyyy-MM-dd格式日期字符串,解析成LocalDateTime遇到的问题
    LocalDateTimelocalDateTime;try{localDateTime=LocalDateTime.parse(str,DateTimeFormatter.ofPattern(pattern));}catch(Exceptionex){ex.printStackTrace();LocalDatelocalDate=parseLocalDate(str,pattern);......
  • 关于 JavaScript 模块化的描述
    AMD是RequireJS在推广过程中对模块定义的规范化产出,而CMD是SeaJS在推广过程中对模块定义的规范化产出,也就是,RequireJS遵循AMD规范,而Sea.js遵循CMD规范eaJs遵循CMD规范为通用模块规范,RequireJs遵循AMD规范为异步模块规范。CMD依赖就近,AMD依赖前置。//CMDCommonModuleD......
  • 【C#】关于GB/T 13989-2012分幅编号及坐标计算
    1publicstaticclassStandardSubdivisionConvertor2{3///<summary>4///通过图幅号获取四角经纬度坐标5///</summary>6///<paramname="subdivCode"></param>7///<re......