差分约束小结0.0..

来源:互联网 发布:牛聪聪 知乎 编辑:程序博客网 时间:2024/05/21 11:19

写在前面的..

在做POI的时候看到一题要用到差分约束的..

然后就兴致勃勃的去学习了差分约束..

结果发现那一题只是运用到了差分约束系统的性质而已.. 然后套个Tarjan++Floyd

所以并没有什么卵用..


这到底是个啥呢..

举个比较简单的例子吧..

n个数,m条限制,每条限制djdia,然后求是否存在这么个序列..

那么就把式子化一下djdi+a,那么这就是个spfa最短路的模型了..

如果该图存在负环,那么就表示并不会存在这么个序列..


hdu3666 THE MATRIX PROBLEM

题意:有一个n×m的矩阵,问你能不能通过把同一行或同一列乘一个数或者除以一个数,使得最后每个数都属于[L,U]..

ai为第i行乘的数,bj为第j列除以的数..

那么对于一个Ci,j,就有LCi,jaibjU..

然后同时除以Ci,j,得LCi,jaibjUCi,j..

把除转换成减,就要用到对数:lgLlgCi,jlgailgbjlgUlgCi,j..

那么运用这个公式进行差分约束就好了啊0.0..


uva11478 Halum

题意:有一个有向图,每条边有边权,然后有这么个操作Halum(v,d),把连向v的所有边减去d,把从v连出去的边加上d,求从1n的最短的边的最大值,如果不存在就输出No Solution,如果可以无穷大就输出Infinite

二分一个可能的值mid,对于一条从uv的边,用sumi表示点i的操作次数,就有:midw(u,v)+sumusumv

那么就差分约束就行了啊..


hdu3440 House Man

题意:有N个在一条直线上的房子, 每个房子有着不同的高度, 一个超人可以将这些房子左右移动但不能改变房子之间的相对位置.现在超人要从最矮的房子跳到刚好比他高的房子上面, 且每次跳的房子都要比当前房子要高.那么最后超人肯定会跳到最高的房子上面, 现在给出超人能够跳的最远距离, 问: 如何摆放这些房子, 使得超人能够经过所有的房子跳到最高的房子, 又要使最矮的房子和最高的房子之间的距离最远??(摘自discuss..)

你肯定看不懂题意0.0..(逃)

设第i个房子的位置是posi,第i个的编号为x,第i+1个的编号为y,那么就有:yxposyposxd

然后差分约束搞搞即可..


hdu3592 World Exhibition

题意:有n头牛排成一列,中间有距离,其中有X个第一种条件,有Y个第二种条件
第一种条件给出ABC,表示disBdisAC
第二种条件给出ABC,表示disBdisAC

那么不就是显而易见的吗0.0..


bzoj4500 矩阵

对于每一个条件,就可以得到:Ci,jaibjCi,j

直接套啊0.0..


bzoj2788 [Poi2012]Festival

详见开坑了啦啦啦..

0 0
原创粉丝点击