POJ 3169 差分約束

2021-07-24 05:00:56 字數 751 閱讀 6633

題意:

好久沒做差分約束了,,, 看到這道題第一想法是貪心…………………………

思路:

差分約束

從i到i+1的距離》=0 add(i+1,i,0)

對於互相討厭的牛從u到v的距離》=d add(v,u,-d)

對於互相喜歡的牛從u到v的距離<=d add(u,v,d)

跑spfa就好了

順便判判dis 和入隊次數

//by siriusren

#include

#include

#include

#include

using namespace std;

#define n 25555

int n,ml,md,w[n],v[n],next[n],first[n],dis[n],vis[n],inq[n],tot,xx,yy,zz;

void add(int

x,int

y,int z)

int spfa()

}return dis[n]>0x3ffffff?-2:dis[n];

}int main()

poj3169 差分約束

關於差分約束,我強推這位大佬的部落格。題目是有的牛互相之間最多只能有乙個距離,有的牛最少要達到乙個距離。很容易寫出不等式,由於是要求最大值,所以是要化為小於等於號,求最短路。f i 表示i只牛在哪個位置 0 f b f a d f b f a d 等價於f a f b 0 f b f a d f a...

POJ 3169 差分約束

題意 n頭牛,按照編號從左到右排列,兩頭牛可能在一起,接著有一些關係表示第a頭牛與第b頭牛相隔最多與最少的距離,最後求出第一頭牛與最後一頭牛的最大距離是多少,如 果最大距離無限大則輸出 2,如果關係不能保證則輸出 1 題解 差分約束的入門題 差分約束就是如果dis b dis a c轉化為a到b建一...

POJ 3169 差分約束 bellman

include include using namespace std define maxn 1002 define inf 1000000000 typedef int elem t elem t mat maxn maxn elem t min maxn int bellman ford in...