差分约束
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
poj 3169 Layout 差分约束
题意及做法: n只牛 ml个最长距离限制,md个最长距离限制 然后输入ml个a,b d , a点和b点距离要小于等于d。 所以b-a<=d这就是差分约束的基本的方程 然后输入md个a,b,d, a点和b点的距离要大于等于d。所以 b-a>=d =》 a-b<=-d 然后又因为 编号小的 放前面 所以 又可以得到 dian(i)- dian(i+1)<=0 把这ml+md+n条差分约束方程 建边,b-a<=d,就建a到b的边距离为d。 如果最短路跑出的是 -inf 说明是有负环,说明原创 2015-07-13 19:08:15 · 622 阅读 · 0 评论 -
POJ 1201 Intervals 差分约束
题意: 给你n个闭区间 【a,b】 及c 要求区间内的点数必须要大于等于c 点只存在于区间内。 然后问负无穷到正无穷最多有多少点。 做法: 我们从最左边到最右边。 区间内最少有c个点,说明点(a-1)到b点 最少会增加c个点。 也就是说 b-(a-1)>=c 转换下 (a-1)-b<=-c 就是差分约束的公式了。 然后就是建边 建一条权值为-c 的b到(a-1)的边就行了。 然后取最小的坐标x,取最大的坐标d。 因为求最大值 所以得公式 d-(x-1)>=? 加个负号, (x-1)-d<=-原创 2015-07-15 20:31:54 · 1478 阅读 · 0 评论 -
ZOJ 2770 Burn the Linked Camp 差分约束
题意: 神陆逊 计算 刘备连营的兵力。 给出了刘备n个连营的 最大兵力Ci。 然后 又得到情报 知道 i到j 连营的兵力 不超过k。 然后计算所有人数 最少有多少 做法:(括号内表示该点及其左边所有人数和!!!!!!!!!!) 我们从0点出发。 到1号点,因为连营有最大兵力限制。 所以 (1)-(0)<=C1 又因为 后面的人数前缀和 肯定大于前面的 所以(0)-(1)<=0 然后后面n个点之间都有这种关系。 (i)-(i-1)<=Ci (i-1)-(i)<=0 然后根据差分约束,建边。 然后i到原创 2015-07-15 20:49:58 · 1056 阅读 · 0 评论 -
POJ 3159 Candies 差分约束
题意: 班长分糖 B的糖不能比A多C个以上 班长是n号,1号是史努比。 问班长在符合条件的情况下,最多比史努比多多少糖。 做法:(字母表示该人的糖数) 容易见得, B-A<=C 求n-(1) <=? 很明显的差分约束。 A->B建边,然后计算(1)到n的最短路就好了。原创 2015-07-15 20:38:01 · 1309 阅读 · 1 评论