Gracekite's Homepage

Back

前置芝士#

👉SPFA单源最短路

定义#

{% label 来自OI-Wiki blue %}

差分约束系统 是一种特殊的 元一次不等式组,它包含 个变量 以及 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 ,其中 并且 是常数(可以是非负数,也可以是负数)。我们要解决的问题是:求一组解 ,使得所有的约束条件得到满足,否则判断出无解。

思路#

我们将每个约束条件变形成,然后这个形式很像单源最短路中的 。因此,我们可以把每个变量 看做图中的一个结点,对于每个约束条件 ,从结点 向结点 连一条长度为 的有向边。

  • 若图不是联通的,我们可以设 并向每一个点连一条权重为 的边。
  • 跑单源最短路若图中存在负环,则给定的差分约束系统无解,否则, 为该差分约束系统的一组解。

实现#

差分约束
https://betteroier.github.io/blog/%E5%B7%AE%E5%88%86%E7%BA%A6%E6%9D%9F
Author Yuxuan Zheng
Published at August 11, 2023