do_while_true

一言(ヒトコト)

「杂谈」原来我不会差分约束

差分约束系统提供了通过图论建图以最长路/最短路的形式刻画变量之间的不等关系。常见的应用是判断不等关系是否有合法解。

对于最短路,我们将 \(x_v-x_u\leq w\) 描述为 \(dis_v\leq dis_u+w\),感性理解一下,在这里描述的是 \(x_v\) 的上界,而且通过跑最短路找到了 \(x_v\) 的上界。虽然跑的是"最短路",但在不等式组的意义下 \(x_v\) 可能会更小,所以这里是在满足不等式组的条件下让 \(x_v\) 取到了它的上界。

类似地,如果想要用最长路来跑差分约束,得到的是每个变量的下界。

总结:最短路跑出来的是每个变量最大可能的值,最长路跑出来的是每个变量最小可能的值。

posted @ 2022-03-23 22:58  do_while_true  阅读(63)  评论(1编辑  收藏  举报