/*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 ...