差分约束

我是摇摆哥!老刷三狼干什么!

对于形如 \(a_{v} \le a_{u} + w\) 的多组不等式,如何求解?

很明显,这是一个三角不等式。即,如果 \(a_{x}\)\(x\) 到源点的最小值,该式一定成立。对于所有边一定不能再松弛任意一点。

所以考虑对于该式求最短路,\(u\)\(v\) 有一条边权为 \(w\) 的边。建造一个超级源点 \(0\),向所有点连一条边权为 \(1\) 的边,如果有负环就无解,否则即可得到正整数解。

同样的,如果将式子变为 \(a_{v} - w\le a_{u}\)\(v\)\(u\) 有一条边权为 \(-w\) 的边然后同上述技巧建图,跑最长路即可。

如何求最大值最小的正整数解?(\(a_{n}-a_{0}\) 最小)

找了好久,这个感觉网上清晰的介绍不太多啊。

对于任意一条从 \(0\)\(n\) 的路径,经过的点为 \(c_{i}\),我们都要满足以下条件。

\[\begin{aligned} a_{c_{1}} &\le a_{0} + w_{0,c_{1}}\\ a_{c_{2}} &\le a_{c_{1}} + w_{c_{1},c_{2}}\\ &\cdots\\ a_{n} &\le a_{c_{n-1}} + w_{c_{n-1},c_{n}}\\ \end{aligned} \]

\[\begin{aligned} a_{c_{1}} &\ge a_{0} - w_{0,c_{1}}\\ a_{c_{2}} &\ge a_{c_{1]}} - w_{c_{1},c_{2}}\\ &\cdots\\ a_{c_{n}} &\ge a_{c_{n-1]}} - w_{c_{n-1},c_{n}}\\ \end{aligned} \]

如果是最长路,我们取得是所有路径中最长的一条,因为我们对于每一条上述路径,都要满足 \(a_{n} \ge (\sum_{i=1}^{n} (-w_{i-1,i}))\),所以取最长路,这是在处理性质。由于是 \(\ge\),所以满足条件要大于等于 \((\sum_{i=1}^{n} (-w_{i-1,i}))\) 的最大值,正好是最长路求得的值,所以我们紧贴限制的下界,自然就是最小值。

如果我们是最短路,那么我们取就是的所有这个路径的最小 \(\sum_{i=1}^{n} w_{i-1,i}\),但是实际上我们取的是在满足 \(a_{v} \le a_{u} + w\) 这个式子的情况下的最大值。重新梳理一遍,为了满足 \(a_{v} \le a_{u} + w\),所以需要跑最短路,求出来的答案是最短路,并且求出的答案不能在变大了,否则不满足 \(a_{v} \le a_{u} + w\) 的限制,由于是 \(a_{v} \le a_{u} + w\),所以我们的 \(a_{v}\) 实际上可以变得更小,但我们此时取得是 \(a_{u}+w\),相当于取了符合限制的最大值。

posted @ 2024-10-07 14:00  PM_pro  阅读(5)  评论(0编辑  收藏  举报