差分约束模型

1 篇文章 0 订阅

类型1

给定n个变量和m个不等式,每个不等式形如

x[i]-x[j]<=a[k]

求x[n]-x[1]的最大值

方法

x[i]-x[j]<=a[k] 意味着x[i]最多就比x[j]多a[k]

这个时候建立图,x[i]->x[j]建立有向边,值为a[k]

那么最后求得就是节点n到节点1的最短路

最短路一定是满足所有约束的情况下取得的最大的值

这是因为我们在建边的时候已经把a[k]全部都取满了

 

类型2

给定n个变量和m个不等式,每个不等式形如

x[i]-x[j]>=a[k]

求x[n]-x[1]的最小值

同理我们可以沿用类型1的思路

x[i]-x[j]>=a[k] 意味着x[i]至少比x[j]多a[k]

这个时候建立图,x[i]->x[j]建立有向边,值为a[k]

那么最后求得就是节点n到节点1的最长路

最长路一定是满足所有约束的情况下取得的最大的值

这是因为我们在建边的时候已经把a[k]压缩到最低了了

容易知道,类型1和类型2实际上是对偶的关系 

 

关于解的存在性

上文提到最短路的时候

会出现负权圈或者根本就不可达的情况

所以在不等式组转化的图上也有可能出现上述情况先来看负权圈的情况 那么此时最短路就是-oo

所以 x[n]-x[1]<=T,这个T可以取无限小的

对于根本不可到达的情况,说明x[n]和x[1]之间并没有约束关系

这种情况下x[n]-x[1]的最大值是无限大

就表明了x[n]和x[1]的取值有无限多种

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值