它们的差是不变的,

那么这个差分

约束系统中的所有不等式都不会被破坏。

差分约束系统的解法利用到了单源最短路径问题中的三角形不等式。

即对于

任何一条边

u -> v

,都有:

d(v)

<=

d(u)

+

w(u,

v)

其中

d(u)

d(v)

是从源点分别到点

u

和点

v

的最短路径的权值,

w(u, v)

是边

u -> v

的权值。

显然以上不等式就是

d(v) - d(u) <= w(u, v)

。这个形式正好和差分约束

系统中的不等式形式相同。于是我们就可以把一个差分约束系统转化成一张图,

每个未知数

Xi

对应图中的一个顶点

Vi

,把所有不等式都化成图中的一条边。对

于不等式

Xi - Xj <= c

,把它化成三角形不等式:

Xi <= Xj + c

,就可以化成

Vj

->

Vi

,权值为

c

。最后,我们在这张图上求一次单源最短路径,这些三角

形不等式就会全部都满足了,因为它是最短路径问题的基本性质嘛。

话说回来,

所谓单源最短路径,

当然要有一个源点,

然后再求这个源点到其

他所有点的最短路径。

那么源点在哪呢?我们不妨自已造一个。

以上面的不等式

组为例,我们就再新加一个未知数

X0

。然后对原来的每个未知数都对

X0

随便加

一个不等式

(这个不等式当然也要和其它不等式形式相同,

即两个未知数的差小

约束rmq_差分约束相关推荐

  1. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  2. HDU3440(差分约束+SPFA算法)

    题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  3. HDU1531(差分约束+Bellman_ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  4. poj3159(差分约束)

    题意:其实题目要求的就是这个B-A<=c,所以对应单源最短路径中的d[v]>d[u]+e[u][v] 关于差分约束: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  5. poj1364(差分约束+Bellman-ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  6. poj1201(差分约束+SPFA)

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

  7. poj3169(差分约束+SPFA)

    题意:FJ有N头牛,这些牛都站在一条直线上等待,但是现在给出了一些条件: 1.首先列出哪些牛之间彼此喜欢,以及之间的最大距离,也就是A-B<=X 2.随后列出哪些牛之间彼此不喜欢,以及之间的最小 ...

  8. poj1716(差分约束+SPFA)

    题意:整数间隔[a,b],a<b,是以a开头和以b结尾的所有连续整数的集合.在包含至少两个不同整数的集合中找到每个间隔的最小元素数. 思路:采用差分约束算法:当问题可以转化为形如一组 xi‑x' ...

  9. 差分约束问题 ---- 2019ccpc哈尔滨A. Artful Paintings[二分+差分约束+建图剪枝]

    题目链接 题目大意: 有N≤3e3N≤3e3N≤3e3个格子,你可以任意给每个格子染色,但是要满足M≤3e3M≤3e3M≤3e3限制条件,限制条件有两种类型: 区间[l,r][l,r][l,r]中被染 ...

最新文章

  1. R语言搭建炫酷的线上博客系统
  2. win32 api setwindowlong 第2个参数_第 6 篇:分页接口
  3. C++#define的用法(含特殊)
  4. 如何零基础入门FPGA?这篇文章让你吃透!
  5. 用c语言写出一个榜单程序,C语言依然位居榜单前列,依然值得程序员学习
  6. 任正非:将来华为岗位分三类 职员类岗位不涉及末位淘汰
  7. 基于 TCP Socket 的服务器与客户端的简单连接
  8. Redis学习(5)-常用命令
  9. php配置了扩展为什么不生效,php安装扩展模块后,重启不生效的原因及解决办法...
  10. HDU 5879 Cure -2016 ICPC 青岛赛区网络赛
  11. 对COM组件的调用返回了错误HRESULT E_FAIL
  12. 技术团队管理:技术分享
  13. 监控工具Zabbix之原理及部署
  14. 二进制拆弹(20181023-20181026)
  15. 综合日语第一册第六课
  16. Linux tac命令
  17. 我们要做一个靠谱的人~以信而立天下
  18. RHCSA之Linux系统简介
  19. 物联网实训室建设方案(2020完整版)
  20. rsync实现断点续传

热门文章

  1. 大话设计模式—代理模式
  2. 有关数据库表被锁定的问题
  3. java实现图片验证码
  4. nodejs的事件循环1
  5. Golang学习---常用库
  6. datax源码阅读一:python文件
  7. 【Python】从0开始写爬虫——扒狗东先流产了
  8. MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析
  9. 手把手教你用CAB发布OCX的简单办法
  10. PHP:第四章——PHP数组array_diff计算数组差集