題意
傳送門 poj 1275 cashier employment
題解不等式問題,考慮轉化為差分約束系統。某個時刻 i
ii 的工作人數為前 8
88 個小時內開始工作的人數和,將其轉化為字首和 s
ss 的差分。設 num
[i
]num[i]
num[i]
為工作開始時間為時刻 i
ii 的人數。
s[i]\geq s[i-1] \\ s[i]-s[i-1]\leq num[i]\\ s[i]-s[j]\geq \beginr[i] &i>j\\ r[i]-(s[23]-s[-1]) & i⎩⎪
⎪⎪⎨⎪
⎪⎪⎧
s[i]
≥s[i
−1]s
[i]−
s[i−
1]≤n
um[i
]s[i
]−s[
j]≥ s[i-1]-s[i]\leq 0\\ s[i]-s[i-1]\leq num[i]\\ s[j]-s[i]\leq \begin-r[i] &i>j\\ x-r[i] & i⎩⎪
⎪⎪⎪⎪
⎪⎪⎪⎨
⎪⎪⎪⎪
⎪⎪⎪⎪
⎧s[
i−1]
−s[i
]≤0s
[i]−
s[i−
1]≤n
um[i
]s[j
]−s[
i]≤bool
spfa()
}}return1;
}bool
judge
(int x)
add(0,
24, x)
,add(24
,0,-x)
;return
spfa()
;}intmain()
if(ub > n)
puts
("no solution");
else
printf
("%d\n"
, ub);}
return0;
}
poj1275 (二分 差分約束)
題意 在一家超市裡,每個時刻都需要有營業員看管,r i 0 i 24 表示從i時刻開始到i 1時刻需要的營業員的數目,現在有n n 1000 個申請人申請這項工作,並且每個申請者都有乙個起始工作時間 ti,如果第i個申請者被錄用,那麼他會從ti時刻開始連續工作8小時。現在要求選擇一些申請者進行錄用,...
poj1275 差分約束系統
1.思路 沒什麼好講的,劉汝佳的書 演算法藝術與資訊學競賽 講得很好,不過對於初次接觸差分約束系統的人來講還是很費解,可以去參考 演算法導論 裡面有很詳細的約束圖的構建過程。這裡講一下我的個人理解。s i 為從0至i時刻僱傭的人數,t i 為i時刻應聘的人數,r i 為i至 i 1 24時間段需要的...
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...