差分约束
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 · 602 阅读 · 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 · 1466 阅读 · 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 · 1046 阅读 · 0 评论 -
POJ 3159 Candies 差分约束
题意:班长分糖B的糖不能比A多C个以上班长是n号,1号是史努比。问班长在符合条件的情况下,最多比史努比多多少糖。做法:(字母表示该人的糖数)容易见得, B-A<=C求n-(1) <=?很明显的差分约束。A->B建边,然后计算(1)到n的最短路就好了。原创 2015-07-15 20:38:01 · 1302 阅读 · 1 评论