洛谷 1260 工程規劃 (差分約束)

2022-05-15 22:29:15 字數 837 閱讀 1469

/*

ti≤tj+b意味ti的最大值為tj+b;

tj≥ti-b意味tj的最大值為ti-b;

因此,根據題中給出的m個不等式,逐步調整各個ti的最小值和最大值。

設high[i]為ti當前的最大值,low[i]為ti當前的最小值。

high[j]為tj當前的最大值,low[j]為tj當前的最小值。

若high[i]-high[j]>b,則high[i]=high[j]+b(根據ti≤tj+b),

若low[i]-low[j]*/

#include

#include

#include

#define maxn 5010

using

namespace

std;

intn,m,l[maxn],r[maxn],x[maxn],y[maxn],z[maxn],can;

void

get_lr()

intmain()

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

if(l[i]>r[i])

if(falg)break

;

if(f==0

)

}if(!can)

int cd=0x3f3f3f3f

;

for(int i=1;i<=n;i++)cd=min(cd,l[i]);//

調整結果 恰好有零

for(int i=1;i<=n;i++)printf("

%d\n

",l[i]-cd);

return0;

}

P1260 工程規劃 差分約束

差分約束.差分約束似乎精髓就兩句話 所以對於本題的式子 ti tj leq b 可以寫成 t i b leq t j 然後就從 i 向 j 連一條 b 的邊然後跑最長路即可.按式子可以隨便搞.includeusing namespace std const int maxn 5008 struct ...

P1260 工程規劃

差分約束板子 差分約束 把 i j x 操作等價於從 j 到 i 連一條邊權為 x 的邊。然後跑一遍spfa統計最短路,即為一組合法序列。這道題裡要求以乙個點為基準點 0 在跑完spfa之後統計最小的dis值,然後按順序輸出dis值減去這個最小值即可。另乙個問題是圖不一定連通,有兩個解決方法 1.建...

P1260 工程規劃

題目非常得簡潔明瞭,差分約束的裸題,甚至連不等式都給你寫出來了 沒什麼好分析的,直接看不等式建立方程 這裡把 ti 和 tj 都表示為 i 和 j 因為求的應該是最早的開始時間,我們應該轉化為 然後跑最長路求解 i j leq b j leq b i j geq i b 那麼就應該是從 i 到 j ...