差分约束系统

介绍

差分约束系统这种东西非常的神奇,
就是如果一个系统由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