差分约束

首先不了解差分约束可以看下这篇博客:https://www.cnblogs.com/zhangmingcheng/p/3929394.html

感觉这里面写的还是很详细的,有些话仔细琢磨一下也感觉非常有道理。

做差分约束这样的题目首先要记住一句话,即:若题目中说要求最小的话,那么我们要跑最长路;若求最大的,那么我们要跑最短路。具体的证明上面的博客也有叙述,这里大体说下:就是求最小时,我们跑最长路,假如跑完后还有更小的,那么在跑最长路时一定还会对其进行松弛,使其变得更大,所以我们跑完最长路后,一定不会还存在更小的了。求最大的也同样的道理。

然后是关于图不连通的情况,想必大家都知道这时候要搞一个超级源,然后将每一个点连起来,得到一个联通图,这里主要讲一下这样做为什么不会影响答案:首先我们搞一个超级源向其它点连边,其实就是又搞了几个不等式,这样限制显然更多了,但不会因为限制的增加而导致原来有解的不等式出现无解的情况,因为当图不连通时,用不等式的思想就是有几个点它们没有任何的联系,也就是说这时候所有的点分成了两部分,这两部分点的取值互不影响,所以我们加一个超级源只是给这两部分点一点关系,而不会导致无解的出现。然后超级源的值是我们规定的,其它的点的值也都在此基础上不断的更新(最短路或者最长路中的松弛)。

还有若对于一个点的值被固定的情况,此时跑最短路其它的点的值会达到最大;跑最长路其它的点的值会达到最小,上面的博客中也有涉及。固定的是超级源的值也同理。

下面是一些题目:

https://www.luogu.org/problemnew/show/P3084

https://www.luogu.org/problemnew/show/P1250

https://www.luogu.org/problemnew/show/P1993

https://www.luogu.org/problemnew/show/P3275

其中前两道题都是一个点固定跑最短路或者最长路求解的,固定不是超级源。

第三道,只需正确找到超级源,然后把图联通,跑一遍SPFA判断下有没有负环即可。

第四道有些难度,主要题目含有的一个隐含条件:要求每个小朋友都要分到糖果,那么这个条件转化一下其实就是,Di>=1 => Di>=0+1,显然这个题目的图不是联通的,那么我们不放把超级源的值设为0,则刚好配凑出那个条件,同时还能够使得图联通,之后跑一遍最长路,根据上面的“当一个点的值固定时,跑最长路会使其它点的值达到最小,固定的是超级源也同理”,可以巧妙的解决掉这道题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值