自我分析,为什么用SPFA解差分方程,用最短路径求差分方程的最大解;用最长路径求差分方程的最小解.

如果给出的是一组:

a2 - a1 <= k1

a3 - a1 <= k2

....

之类的一组小于等于的不等式组...那么看  a - b <= k .. 化成 a < = b + k ... 这时构边是 b 为起点,a 为终点,权值为k的边...

而此时SPFA是求最短路径的Relax是

if  ( d [ line.end ] > d [ line.start ] + line.wight )

d [ line.end ] = d [ line.start ] + line.wight;

那么 d [ line.end ] 的值最终将是 d [ line.start ] + line.wight 里最小的...若先令了一个源点...则这个d [ line.end ]就是 line.end 这个点的值..而这个值满足所有的约束条件..并且等于了最小的 a + k 但不会比最小的还要小..也就是 line.end 满足的是所有 line.end <= a+k 中a+k最小的...虽然line.end再小些也会满足与其所有 <= 的 关系..但正因为SPFA更新时一直是 = 所以求出的就是 d [ line.end ] 满足所有约束条件的最大值..

如果给出的是一组:

a2 - a1 >= k1

a3 - a1 >= k2

....

之类的一组小于等于的不等式组...那么看  a - b >= k .. 化成 a > = b + k ... 这时构边是 b 为起点,a 为终点,权值为k的边...

而此时SPFA是求最长路径,Relax是

if  ( d [ line.end ] < d [ line.start ] + line.wight )

d [ line.end ] = d [ line.start ] + line.wight;

那么 d [ line.end ] 的值最终将是 d [ line.start ] + line.wight 里最大的...若先令了一个源点...则这个d [ line.end ]就是 line.end 这个点的值..而这个值满足所有的约束条件..并且等于了最大的 a + k 但不会比最大的还要大..也就是 line.end 满足的是所有 line.end >= a+k 中 a+k最大的...虽然line.end再大些也会满足与其所有 >= 的关系..但正因为SPFA更新时一直是 = 所以求出的就是 d [ line.end ] 满足所有约束条件的最小值..

谈SPFA解差分约束最大值最小值的原理...相关推荐

  1. POJ - 3169 SPFA解差分约束除了有解,负环还有另一种情况

    题意就是有N头牛排成一个直线..有些牛之间互相讨厌..距离必须大于等于某个...有些牛之间相互暧昧..距离必须小于等于某个...牛的前后顺序和编号是一样的...问这些牛最多能排多长.. 比较传统的SP ...

  2. POJ1201/ZOJ1508/HDU1384 Intervals(spfa解差分约束问题)

    题意是说给出一些闭区间,这些区间上整点可以选择放一个元素或者不放,但是每个区间都有一个下限,就是说你在这个区间里面的元素个数不能低于这个下限值. 最后要求出最少需要几个元素才能满足每个区间的要求. 建 ...

  3. POJ3169 Layout , 最短路算法解差分约束问题

    POJ3169 Layout 题意: n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0.这些牛的距离存在着一些约束关系:1.有ml组(u, v, w)的约束关系,表示牛 ...

  4. UVA 11478 Halum(用bellman-ford解差分约束)

    对于一个有向带权图,进行一种操作(v,d),对以点v为终点的边的权值-d,对以点v为起点的边的权值+d.现在给出一个有向带权图,为能否经过一系列的(v,d)操作使图上的每一条边的权值为正,若能,求最小 ...

  5. 【POJ1021】Intervals (最短路解差分约束)

    题目: Sample Input 5 3 7 3 8 10 3 6 8 1 1 3 1 10 11 1 Sample Output 6 题意: 我们选数,每个数只能选一次.给定n个条件[ai,bi]和 ...

  6. 【UVA11478】Halum (最短路解差分约束)

    题目: Sample Input 2 1 1 2 10 2 1 1 2 -10 3 3 1 2 4 2 3 2 3 1 5 4 5 2 3 4 4 2 5 3 4 2 3 1 0 1 2 -1 Sam ...

  7. [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]

    题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...

  8. HDU 1384 Intervals【差分约束-SPFA】

    类型:给出一些形如a−b<=k的不等式(或a−b>=k或a−b<k或a−b>k等),问是否有解[是否有负环]或求差的极值[最短/长路径]. 例子:b−a<=k1,c−b& ...

  9. poj1201(差分约束+SPFA)

    看到这道题,其实就是和poj1716是差不多的 题意:给出n个闭整数区间[ai,bi]和n个整数C1,.,cn.计算具有区间[ai,bi]的至少ci公共元素的整数集Z的最小大小,对于每一个i=1,2, ...

最新文章

  1. 读javascript高级程序设计03-函数表达式、闭包、私有变量
  2. npm安装bower时报错 我已解决
  3. 《github一天一道算法题》:插入排序
  4. 下面使用计算机动画制作的,2020年最新电大《计算机二维动画制作》形考作业任务01-03网考试题及答案(10页)-原创力文档...
  5. 渗透测试之子域到父域的横向移动(Sid History)
  6. javascript案例练习
  7. 一个手机号码剔重的问题
  8. 黄聪:wordpress源码解析-目录结构-文件调用关系(转)
  9. [20161006]windows下bbed使用注意.txt
  10. Java 的内存管理机制是怎样的?
  11. moco-globalsettings
  12. C#串口通信工作笔记0002---上位机开发_嵌入式_串口助手_控制下位机的开关
  13. mnist tensorrt 运行_TensorRT学习
  14. java 定义接口school_Java接口介绍
  15. iOS之正则表达式的使用
  16. java else 语法错误_Java中带有else的语法错误
  17. drain open 线与_开漏(opendrain)和开集(opencollector)介绍
  18. MATLAB 数学应用 微分方程 一维偏微分方程 求解单个PDE
  19. 96---Python 绘制阿基米德螺旋线
  20. 如果你不了解 python 的学习体系?来看看这篇博客吧 ,特邀嘴强擦哥做点评|Python技能树测评

热门文章

  1. python批量数据处理脚本——批量删除文件
  2. python 批量替换当前.txt文本内容
  3. 基于可编辑DIV的带表情编辑器
  4. 前高管苏箐离职,原因或在于他的“杀人”言论同样对华为自身不利
  5. 4.File类、Lambda表达式、JAVA IO
  6. 《东周列国志》第七十四回 囊瓦惧谤诛无极 要离贪名刺庆忌
  7. 【非原创】这一生至少当一次傻瓜(r4笔记第88天)
  8. 群晖nas存储系统原理_今夜来谈群晖----缓存、NAS和SSD那些事
  9. 用 Neon Intrinsics 优化 C 代码
  10. C++中string子串