您的位置:首页 > 其它

|算法讨论|差分约束 学习笔记

2017-02-11 16:20 316 查看
题目

[差分约束]BZOJ 2330:用最短路算法求最长路求差分约束

[差分约束]poj 1201:用最短路算法求最长路求差分约束

[差分约束]Hdu 1531:用最短路算法求最长路求差分约束解的存在性

[差分约束]Hdu 3592:求差分约束最大差

模板及讲解

差分约束就是给出一些形如x−y≥c的约束,问你是否有解,或求最大、最小解。

该问题可以转化为图上最短路问题。

1、求最大差

建立形如 A−B<=C 的不等式,在原图中添加边 B−>A 边权为 C

对建好的图跑最短路,如果存在负环,无解(判断条件为某点被更新了n次),n为图中点的数量

2、求最小差

建立形如 A−B>=C 的不等式,在原图中添加边 B−>A 边权为 C

对建好的图跑最长路,如果存在正环,无解(判断条件为某点被更新了n 次),n 为图中点的数量

(以上出自该博客,如果侵犯到了您的权益,请联系我移除)

我们可以建立一个虚结点,然后让这个虚结点指向所有图中的结点,权值为0,从虚结点开始求最短路。(还可以先把所有点加入队列,之后dis全部初始化为0)

不等式标准化方法:

如果有一个不等式为x−y>c, 则可变为x−y≥c+1

同理x−y<c可变为x−y≤c−1

如果是x−y=c,则变为两个式子x−y≤c,x−y≥c

poj 1201:建立形如 A−B>=C 的不等式,求最小解

BZOJ 2330:依旧建立形如 A−B>=C 的不等式,所不同的是不等式的标准化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: