差分约束小结

定义:如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统。

我们知道差分约束系统是借助于最短路实现的,那我们在知道了定义之后就来看一下如何将几个不等式放到图上。

假设我们有一个不等式a-b<=c,那我们可以将它变为a<=b+c,所以我们便可以将这个表达式表示为点a向点b连一条权值为c的边,而如果同时有一个不等式a-b>=c,我们便可以将其变为b-a<=c,即b<=a+c,我们便可以由a向b连一条权值为c的边。我们在连好边之后要考虑的便是到底要跑最短路还是最长路。

假设我们要求c-a的最大值,而我们现在有c-a<=k1+k2和c-a<=k3两个式子,那我们知道为了同时满足这两个式子c-a的最小值应该是min{k1+k2,k3}。而如果我们如果要求c-a的最小值且有c-a>=k1+k2和c-a>=k3两个式子,c-a的取值便应该是max{k1+k2,k3},所以我们不难发现求最小值的时候要跑最长路,而求最大值的时候要跑最短路。

在知道以上这些之后做差分约束的题应该就不难了。

转载于:https://www.cnblogs.com/yzxverygood/p/9513435.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值