jzoj1295 設計 差分約束系統,最短路

2021-08-21 09:23:03 字數 1221 閱讀 1748

比賽時有想到是最短路,可是覺得自己的是錯的就沒做qwq

有n頭牛,座標分別為s1

,s2,

s3..

.sn s1,

s2,s

3...

sn

,保證si

⩽si+

1 si⩽

si+1

。有ml

m

l個要求是第

a a

頭牛和第

b' role="presentation" style="position: relative;">b

b頭牛距離不能超過

d d

,然後有mr

' role="presentation" style="position: relative;">mrm

r個要求是第

a a

頭牛和第

b' role="presentation" style="position: relative;">b

b頭牛距離至少為

d d

。求第1頭和第n頭牛之間的最大距離。

第乙個要求就是a−

b⩽d' role="presentation" style="position: relative;">a−b

⩽da−

b⩽d,直接差分約束在a連b權值為d。然後第二種a+

b⩾d a+b

⩾d

就b連a權值-d。

這就是裸差分約束系統,可是我那時候不會

#include

#include

#include

#define mn 1010

using

namespace

std;

queue

q;struct linea[mn*30];

int n,ml,mr,tot,x,y,w,f[mn],ls[mn],len[mn];

bool v[mn];

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

int spfa()//函式如其名就是spfa}}

}if (f[n]>=690563370) return -2;

return f[n];

}int main()

for (int i=1;i<=mr;i++)

printf("%d",spfa());

}

差分約束系統 變相的最短路

之前沒有細看,想不明白這個問題怎麼和最短路扯上關係,細細看了看,也沒明白,原因是在看dijk演算法的時候就沒好搞明白它的 實現,以至於這個問題模擬到最短路實現的時候一臉懵,還去瞅了瞅三角不等式是什麼東西,簡單來說,難就難在圖的構造上面,構造好圖之後就是模板,就是之前的內容了,一起看看這個東西吧,on...

差分約束系統

差分約束 若 s a s b k 建一條b到a 的長度為k的邊 若s a s b k 建一條b到a 的長度為 k的邊 是求最小值的最長路 是求最大值的最短路 注意到最短路演算法的鬆弛操作 if d j d i w i j d j d i w i j 這其中的三角形不等式 d j d i w i j ...

差分約束系統

差分約束系統 對於差分不等式,a b c 建一條 b 到 a 的權值為 c 的邊,求的是最短路,得到的是最大值 對於不等式 a b c 建一條 b 到 a 的權值為 c 的邊,求的是最長路,得到的是最小值 存在負環的話是無解 求不出最短路 dist 沒有得到更新 的話是任意解 第三 一種建圖方法 設...