poj 2983 spfa差分約束

2021-07-01 20:37:02 字數 713 閱讀 4760

題意:給出兩種關於防禦站位置的資訊,一種是確切的資訊,p a b x,表示a在b北面x距離的地方,另一種是v a b,表示只知道a在b的北面,且距離至少為1。問這些資訊有沒有矛盾。

思路:明顯的差分約束。對於p a b x,列出x<=a-b<=x,然後轉化為兩個不等式即可。

注意佇列的大小~~

#include #include #include #define n 1005

#define m 100005

#define inf 0x3fffffff

struct edgee[(m<<1)+n];

int first[n],dis[n],q[1000000],used[n],num[n];

int n,m,top;

void add(int x,int y,int w)

int relax(int x,int y,int w)

return 0;

}int spfa()}}

return 1;

}int main()else

}for(i = 1;i<=n;i++)

add(0,i,0);

if(spfa())

printf("reliable\n");

else

printf("unreliable\n");

}return 0;

}

POJ3169差分約束 SPFA 差分約束

思路 假設i j 兩隻奶牛可以站在同乙個位置,但是必須公升序排列,所以有差分約束方程d i d i 1 0 對於兩隻有好感的奶牛有差分約束方程d j d i k 對於兩隻反感的奶牛有差分約束方程d i d j k 有了約束方程就可以spfa include include include inclu...

poj 3169 差分約束 spfa

include includeusing namespace std define inf 0x1fffffff int dist 10010 visited 10010 adj 10010 size,cnt 10010 int nodenum,edgenum1,edgenum2 struct no...

poj1201 spfa差分約束

差分約束就是把不等式似的的東西轉化為最短路求解,格式是所有式子都是兩個未知數的差小於等於某個常數的就算,當然大於等於也可以,本題就是大於等於,乘 1就好 1201題意 ai,bi 上至少要選擇ci個整數點,可以在區間內任意取不重複的點 問最少選多少個點,這麼些區間有重合部分,所以,列不等式啦 s b...