poj 1364 King 差分約束

2021-06-05 13:06:09 字數 772 閱讀 2881

//注意差分約束只能求》=或<=,spfa判斷有無負權迴路。

//對於差分不等式,a - b <= c ,建一條 b 到 a 的權值為 c 的邊,求的是最短路,得到的是最大值;對於不等式 a - b >= c ,建一條 b 到 a 的權值為 c 的邊,求的是最長路,得到的是最小值。存在負環的話是無解,求不出最短路(dist[ ]沒有得到更新)的話是任意解。

//建圖中有時候會用到乙個虛點,這個點到圖中每個實點的距離(dist[ ])為0,當然這個點的作用是方便圖中的點入隊(spfa演算法),然後使這些實點的dist[ ]值得到更新。

#include

#include

#include

#include

using namespace std;

const int inf=0x3f3f3f3f;

const int maxn=105;

struct nodeedge[maxn*2];

int pre[maxn], cnt[maxn*2], inqueue[maxn*2], d[maxn], n, m, num;

void add_edge(int s, int e, int w)

void init()

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

add_edge(0, i, 0);

}bool spfa()

}s=edge[s].next;}}

return true;

}int main()

return 0;

}

poj 1364 King 差分約束

題目大意 有乙個序列。給定一些約束條件,格式為si ni oi ki,意思是序列中第si項到第si ni項的和 或 ki,oi表示 用 gt 表示 或 用 lt 表示 問這樣的序列是否存在。存在輸出 lamentable kingdomi 否則輸出 successful conspiracy 思路 ...

POJ1364 King 差分約束

鏈結 poj1364 題目大意 給你n和m,以及m個約束條件,對於每個約束條件給出si,ni,oi,ki,求是否有乙個n個元素的序列a能滿足這些約束條件。其中oi可以分別表示為gt 和lt 約束條件的定義為as i as i 1 as i ni ki 或asi asi 1 asi ni。解題報告 了...

差分約束 poj 1364 King

大致題意 告訴你有一列長度為n的數列和m個關係式。每個關係式的表述為 si ni gt c 或者是 si ni lt c。分別代表該數列第si項一直加到第si ni項的和大於c,和第si項一直加到第si ni項的和小於c。求是否存在滿足以上m個要求的數列。是則輸出 lamentable kingdo...