8.5【A】

3310

一开始打算拓扑排序,但考虑到有环的存在,也不是很好

如果一个节点能够被指,且不自成环,那么可以认为是安全的

否则,若没有被指,或者被指了,且成环了,那么删除由此节点延申出的一切节点

先是判断是否被指

若被指,则检测指的那个节点是否在自己的环上

若在,则执行清除

否则,执行清除

对于清除方法,清除掉一切由此节点产生的节点

给定一系列边关系后,如何构建出来?就是可达性?

维护一个vector,是当前可达的那些点,对于新边,先检测起点是否在数组中,若在则可加入;但这样会有问题,若起点为O,有边OA和AB,若先遇到AB,发现数组里还没A,即O还不可达A,那么也不会把B放入数组中,但遇到OA后就可以了

所以如何更好地去维护这个数组?最笨的方法就是不断遍历,每到一个新边,就不断地去尝试之前没通过的边,但这样可能会发生递归问题,即遇到V1边,遍历之前没成功的集合,如果到最后才能成功V2的话,可能在之前的集合里还有V3可以利用,即每成功加入一条边,就要去检测一次没成功的边集合

对于这个fail数组,成功匹配的位置不确定,所以当发生擦除时,可以是任意位置,那么需要实现链表式的擦除,也很费劲

还有就是维护一个数组,即是否有边的终点是该点,最后检测这个数组里的所有点是否被可达

若全都可以,则删除

对于BFS,感觉也是会出现可能可达但提前检测导致被判定为不可达的情况,即ABOA情况,这时候怎么处理才能不重不漏?

忘记先建图了

相关推荐
moshuying6 分钟前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
没落之王19 分钟前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
INGNIGHT1 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
moshuying1 小时前
扩散模型开始写代码、开网页了:350 亿参数,速度比 Jev 快一倍
前端·算法
小超人诞生日记1 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
labuladong2 小时前
机器学习&神经网络 系列教程上线
神经网络·算法·机器学习
xiangyun612 小时前
C++ 手撕 shared_ptr:引用计数与控制块到底长什么样?
开发语言·c++·算法·面试·stl
学习论之费曼学习法2 小时前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
Carl_奕然3 小时前
【机器视觉】最强算法之:3D高斯泼溅(3D Gaussian Splatting)
人工智能·python·算法·目标检测·计算机视觉·3d
w_zero_one3 小时前
算法--桶思想
java·开发语言·算法