差分约束基础

差分约束建图方法

①:对于差分不等式,a - b <= c ,建一条 b 到 a 的权值为 c 的边,求的是最短路,得到的是最大值
②:对于不等式 a - b >= c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值

对于求最短路来说:

①:存在负环的话是无解
②:求不出最短路(dist[ ]没有得到更新)的话是任意解
(最长路时可以类比这两条结论);

或是

1.对于一个全部都是<=号的不等式组,我们可以将每个式子转化为Xi<=Xj+W(i,j),那么就建一条边,Xj->Xi=W(i,j),然后利用最短路径解决问题,在x0定死的情况下,求得最小值

2.对于一个全部都是>=号的不等式组,我们可以将每个式子转化为Xi>=Xj+W(i,j),那么就建一条边,Xj->Xi=W(i,j),然后利用最长路径解决问题,在x0定死的情况下,求得最大值

如果dis[Xi]为inf或-inf,那么Xi为任意解

可以结合例题看一看WikiOI 1242 布局(差分约束基础) CodeOnce的博客

参考了许浩泽大神的博客的内容,感谢
wikioi1242 布局 Jackleg的博客

你可能感兴趣的:(差分约束,论文)