差分约束 Differential Constraints
算法
差分约束系统 是一种特殊的 元一次不等式组,都是的形式。问是否存在一组解,满足所有的差分约束。
差分约束系统中的每个约束条件 都可以变形成 ,这与单源最短路中的三角形不等式 非常相似。因此,我们可以把每个变量 看做图中的一个结点,对于每个约束条件 ,从结点 向结点 连一条长度为 的有向边。
设 并向每一个点连一条权重为 边,跑单源最短路,若图中存在负环,则给定的差分约束系统无解,否则, 为该差分约束系统的一组解。
一般使用 Bellman-Ford 或队列优化的 Bellman-Ford(俗称 SPFA,在某些随机图跑得很快)判断图中是否存在负环,最坏时间复杂度为 。
完整的说明见OI-Wiki文章
习题 | ||||||
---|---|---|---|---|---|---|
P1993 | 小K的农场 | 普及+/提高 | 解答 | |||
P3275 | 糖果 | 提高+/省选- | ||||
P4926 | 倍杀测量者 | 省选/NOI- | 解答 | |||
POJ1364 | King | 解答 | ||||
P8098 | USACO Gold | Tests for Haybales | 2022 | 省选/NOI- | 解答 | 算法标签Tree construction, differential constraints |