zoukankan      html  css  js  c++  java
  • 差分约束系统

    差分约束系统就是给出一些形如x-y<=b不等式的约束,问你是否有满足问题的解,或者求最小,最大解。

    (以下(a,b,c)表示从a向b连一条权值为c的边

    一.原理

    对于图论的最短路径,有:d(v) <= d(u) + w(u, v) ,而差分约束系统的解法利用到了单源最短路径问题中的三角形不等式。

    移项得:d(v) - d(u) <= w(u, v),是不是和上面的x-y<=b的一样?

    二.建图

    分两种情况讨论

    (1)题目要求最大解

    我们把题目给出的不等式转化成x-y<=b的形式,把d设成无穷大,连一条(y,x,b)的边,使用最短路

    为什么? 

    d[]一开始为无穷大,图最短路更新的条件为: if(d[v]>d[u]+w(u,v))   d[v]=d[u]+w(u,v);

    通过不断的松弛,使得d的值不断变小,直到满足所有条件时,就是最大的了

    (2)题目要求最小解

    我们把题目给出的不等式转化成x-y>=b的形式,把d设成无穷小,连一条(y,x,b)的边,使用最长路

    三.技巧与注意

    1.转化不等式

    (1)a==b    =>     a>=b  ,   a<=b   

    (2)a-b<c (a,b为整数)  =>     a-b<=c-1

    (3)a-b>c (a,b为整数)  =>     a-b>=c+1

    2.注意不连通的图

    3.注意判负环(最短路),正环(最长路)

    在SPFA中,如果一个点入队超过n(点的个数)次,那么该图存在负(正)环

  • 相关阅读:
    P3254 圆桌问题
    P4868 Preprefix sum
    2021sd省选游记
    P4145 上帝造题的七分钟2 / 花神游历各国
    P2801 教主的魔法
    P4147 玉蟾宫(悬线法)
    P1944 最长括号匹配
    CF1214D Treasure Island
    Loadrunner与kylinPET的能力对比测试--web动态请求
    Summer——从头开始写一个简易的Spring框架
  • 原文地址:https://www.cnblogs.com/lher/p/7123143.html
Copyright © 2011-2022 走看看