洛谷P1993

差分约束系统

我们可以把一个不等式,看做两个点和一条边,而边则是约束不等式的一个条件

距离 a - b >= c

那么 建边就是 a---c---b ,a b之间建立一条权值为 c 的边,然后我们还可以根据不等式的运算进行一部分约束

对于多个不等式组:

v(x1) - v(x2) >= c1

v(x2) - v(x3) >= c2

……

把它们加起来就会得到:v(x1) - v(xn) >= c1 + c2 + …… + cn-1

而对于所有的不等式,倘若我们满足了 >= 中的最大值,那么所有条件不也就都满足了吗

所以求v(x)-v(y)的最小值是在图上求最长路径。(摘自题解上某个巨巨的博客)

而题目中判断是否成立,也就是看一下这个差分约束系统是否存在一个矛盾,

首先所有数字大于0, 我们不妨建立一个 V(x) - 0 >= 0 把所有点和 0 连一条边就好了

只要求出所有不等式中的最小值,代表着这个系统可以被满足

但是如果光这么看,我们发现这个图就是一棵树。。没有完全连通,那么我们便在最后加一个辅助点,使得整个图变成连通的,

之后我们需要做的就是找一下整个图中的负环,因为一旦存在负环,说明这个系统内部出了问题,出现矛盾了,就不成立了,那么我们反向思路,只要找到一个正环,这道题不就有可成立的情况了吗。。

所以我们用 spfa 来跑一次求负环。。但是这道题被 卡了 tle 好几组数据。。最

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值