差分约束

更新日志 :开工。

思路

概念上与 2-sat 略有相似,实现思想与同余最短路有共通之处(指把数学问题转化为了图论问题)。

给定一些约束条件,形似于 \(x_a+c\ge x_b\),要求你构造出一组满足所有条件的 \(x\) 序列或者汇报不可能。

你发现,我们跑完最短路后,一定满足 \(dis_a+c\ge dis_b\),当 \(a\) 存在一条连向 \(b\) 的边权为 \(c\) 的边。

所以建图以后跑最短路即可。

如果条件形如 \(x_a=x_b\),那么只需要连双向边权为 \(0\) 的边即可。

建图细节

我们令一个超级原点 \(0\)\(dis_0=0\),也就是令其的值为 \(0\)

如果 \(a\) 点的值 \(x_a\) 已定,那么将其与原点双向连边权为 \(x_a\) 的边即可,很好理解。

其他相关细节可以根据具体题目而定。

无解

图中存在负环则无解。

例题

OI-wiki

posted @ 2025-04-25 17:18  LastKismet  阅读(11)  评论(0)    收藏  举报