无向图找环
  • 板块学术版
  • 楼主在下苏鵺
  • 当前回复17
  • 已保存回复17
  • 发布时间2022/8/5 18:23
  • 上次更新2023/10/27 16:51:40
查看原帖
无向图找环
359781
在下苏鵺楼主2022/8/5 18:23

做了一个无向图构造GAD使最长路径最短的题, 思路是找环(多个环嵌套的话找的是最小单位的), 奇数+1,偶数+2(原题描述贴在最后)

还有一个是给定fa[]数组,构造一棵树,问最少修改几个节点,思路还是找环,(a[i]=i的话相当于是自己为自己根节点),认为自环也算长度为1的环,最后输出环的个数-1

刚google了一下找环的操作,感觉只能看懂弗洛伊德(最小环)、随机找环,下面贴一个思路:

在深度优先搜索无向图的过程中,当遇到起始点的时候,会认定为出现环(在本文中只是找出了无向图中所有的长度大于等于3的环(长度为1和2的环没有意思),

所以在深搜的过程中,当遇到的是起始点的时候,还需要进行判断是否是环),当确定是出现了环之后,根据是否在遇到环之前的那个点还有其他的路径,来决定是进一步的进行深度优先搜索还是进行回退,

在进行深度优先搜索的过程中,将访问过的节点标记,若当前的节点无路可走(不能进行深度优先搜索了),在回退的过程中,将标记取消。

还有一个思路是删除度为1的节点,以一个节点为起点进行dfs,删除连接的边都在环上的边,每次循环都删除度为1的节点

但是蒟蒻的树的知识实在是太弱了,代码实现遇到了很大问题,有大佬给推荐一篇博客//大概的代码实现吗QAQ

2022/8/5 18:23
加载中...