差分约束系统

介绍

差分约束系统这种东西非常的神奇,
就是如果一个系统由n个变量和m个约束条件组成,形成m个形如\[a_{i}-a_{j}\leq k\]的不等式\((i,j∈[1,n],k为常数)\),这可以把每个\(a_{i}\)当作一个节点,对于一个不等式\(a_{i}-a_{j}≤k\),将\(a_{j}向a_{i}连一条权值为k的有向边\),然后设置一个源点(按实际情况来设置),再用个最短路算法跑一边,就可以得到一组\(a_{i}\)的可行解。

原理

我们知道,在一个图中,如果节点\(a_{j}\)到节点\(a_{i}\)之间有一条有向边,边权为\(dis(j,i)\),那么\[a_{j}+dis(j,i)\geq a_{i}\]移项得\[a_{i}-a_{j}\leq dis(j,i)\]
不就可上面的不等式一样吗。
所以,就可以用最短路算法,来解决这类的问题。


【NOIP2013模拟】DY引擎
提供一道相关的题目,挺好的。

转载于:https://www.cnblogs.com/chen1352/p/9029707.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值