• 差分约束系统总结(转)


    转载地址

    差分约束总结: 
    今天请教了DQS大神,算是对差分做一个系统性的总结吧,也算是对自己近期不完善理解的差分约束理一遍。

    差分约束分为3大类,求最小,求最大,求是否满足约束条件,第三类求是否满足直接判断负环即可,一般都结合前两类来出题。

    1:求最小。求最小一般是跑最长路,在已有约束条件下建立超级原点(自以为是这么叫),然后根据题目向每一条边建边(边权根据题目而定),然后跑最长路,求最小的一般是满足这样的约束条件:a >= b + c(这么写是为了体现最长路的性质,便于理解)(并且注意这里不要和松弛混了,这个式子说明a要比b至少大c,所以b要通向a至少要c,可以这么理解一下),满足这样的约束条件就b向a建一条权值为c的边。

    2:求最大。求最大一般是跑最短路,同样是在已有约束条件下建立超级原点,建边,最短路类型的一般是满足约束条件:a <= b + c(体现了最短路的性质),这样的约束条件下由b向a建一条权值为c的边。

    但是题目可能不给你恰好的约束条件(a >= b + c || a <= b + c),可能会出现下面的情况: 
    a < b + c 
    a > b + c 
    a = b + c 
    a < b 
    a > b 
    a = b; 
    依次转化为下面情况: 
    a <= b + c - 1 
    a >= b + c + 1 
    (a >= b + c a <= b + c) 
    另外三种是上面三种在C = 0时的情况; 
    其他自行脑补~ 当然具体情况依题目而定咯~

    题目链接: 
    POJ:Candies; 
    BZOJ: [SCOI2011]糖果 题号居然是2330 不是权限题 
    今天T3 =-= 没有链接

  • 相关阅读:
    缓冲流
    properties类
    io流
    异常处理
    file的概述和作用
    map集合和set集合
    js 判断是否是undefined null NaN
    java instanceof 判断是否是String
    ajax获取数据中文乱码问题最简单的完美解决方案
    if else if else if else 的用法
  • 原文地址:https://www.cnblogs.com/zhenghaotian/p/7027863.html
Copyright © 2020-2023  润新知