SPFA之差分约束

S P F A —差分约束 \color{0000FF}{SPFA—差分约束} SPFA差分约束

功能:

  1. 求不等式的可行解
  2. 最大值与最小(重点)

(一)不等式的可行解 \color{92D050}{(一)不等式的可行解} (一)不等式的可行解

步骤:

  1. 将每个不等式 x i ≤ x j + c k x_i\le x_j + c_k xixj+ck,转化为一条从 x j x_j xj x i x_i xi 的一条长度为 c k c_k ck 的边
  2. 找到一个超级源点,使得该源点一定可以遍历到所有边
  3. 从源点求一遍单源最短路

无解情况: 负环 \color{0000FF}{负环} 负环

(二)最大值与最小值(指每一个变量的最值) \color{92D050}{(二)最大值与最小值(指每一个变量的最值)} (二)最大值与最小值(指每一个变量的最值)

结论:

若求最小值,则选择最长路;若求最大值,则选择最短路

存在性:

满足有至少一个条件 x i ≥ c x_i\ge c xic x i ≤ c x_i\le c xic,其中 c c c 为常数,保证了最值,否则就是相对的大小,无最值

问题1:如何转化 x i ≤ c x_i\le c xic,其中 c c c 为常数

方法:建立一个超级源点( 0 0 0 号点),并创建 x 0 ∼ x i x_0\sim x_i x0xi 的一条边,长度为 c c c 即可

问题2:结论的证明

以最大值为例:求出所有从 x i x_i xi 出发,构成的不等式链 x i ≤ x j + c 1 ≤ x k + c 1 + c 2 ≤ ⋯ ≤ c 1 + c 2 + c 3 + … x_i\le x_j + c_1 \le x_k + c_1 + c_2\le\dots\le c_1+c_2 + c_3 + \dots xixj+c1xk+c1+c2c1+c2+c3+,计算出所有的上界, x i x_i xi 的最大值即为所有上界的最小值,故选用最短路。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值