基础图论

图论基础知识总结

spfa算法求负环问题

  1. 统计每个点入队的次数,如果某个点入队 \(n\) 次,则说明存在负环 。

  2. 统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数大于等于 \(n\) ,则也说明存在负环

    spfa在众多问题中的广泛应用,较大程度上得益于他的优秀的复杂度 \(O(n+m)\) 。但在大多数时候,spfa的复杂度是趋近于 \(O(nm)\) 的。
    所以在某些题目中我们可以是用些取巧的玄学做法。
    例如说,在spfa求负环的大多数问题中,当所有点的入队次数超过 \(2n\) 时,我们就认为图中有很大可能时存在负环的,当 \(n\) 的范围很大时,我们可以使用这种方法,以避免超时。

某些出题套路及解决方法

1、很多时候,题目中的负环不一定能从起点走到,所以在进行 \(spfa\) 的时候我们可以先将所有的节点入队。之后正常跑 \(spfa\) 就ok了。
2、\(dis\) 数组不需要赋初值
解释
咕咕……


2—sat问题

sat问题是适应性问题的简称,一般有单sat问题,2-sat问题,和k-sat问题三种 \((k > 2)\) ,其中 \(k-sat\) 问题是 \(NP\) 完全的 ,好像还是21世纪几个未解数学难题之一。所以这里我们讨论 \(2-sat\) 问题 。\(2-sat\) 给出几个变量和关系表达式(每个表达式只会有2个变量),每个变量只有两种状态 \(真或假\) , 求解满足要求的一组解 。

整体做法,

基本公式 \(¬a→b∧¬b→a\)

1、第一步,如下图所示
此处输入图片的描述
图片来自@Anguei的博客,如有侵权请联系删除
2、第二步,考虑多解成立的情况
采用数学方法“带入解看方程是否成立”
此处输入图片的描述
截图来自@暗ざ之殇的博客,如有侵权请联系删除
(我只是懒而且人家讲的已经很好了
连着写了三道 \(2-sat\) ,感觉这种题有很明显的特征,你可以很容易的看出来。但是我们还要仔细分析题目找出一种具有传递性的关系。用连边的方式表示该关系。这个关系还要能够较简单的判断出答案。

所以针对2-sat问题,最重要的是分析!设计出点联通的意义

posted @ 2022-02-18 11:18  Simon_...sun  阅读(35)  评论(1)    收藏  举报