這次故事的主角是hg!轉眼4年過去了,hg本科畢業了,於是找了份工作。每天hg會收到乙份任務清單,清單上列出了n個可能需要他完成的任務。每個任務包含3個資訊:ti、ai、bi,ti表示完成此任務需要的時間,ai表示此任務的到達時間,bi表示此任務的最晚完成時間。在某一時刻若hg手上沒有任務,那麼他可以選擇乙個已經到達且還能夠在bi時刻之前(或者恰好在bi時刻)完成的任務來做。
由於hg有點懶(純屬虛構:d),他想盡量少的減少他的總工作時間,但是他不能在可以做任務的時候故意不做(這樣會被炒魷魚的》_<),那麼他該如何挑選任務來做呢?
你的任務就是求出hg的最少工作時間(即總共有多少時間hg在做任務)。
第一行乙個整數n表示任務數。
以下n行,每行三個整數ti,ai,bi。(n<=1000,0<=ai,bi<=1500,ti>=1)
輸出僅乙個數,即最少工作時間。
3150
2550090
4515
70
50
4ti
>=1
,0
<=a
i,bi
<
=1200
4ti>=1,0<=ai,bi<=1200
4ti>=1
,0<=a
i,bi
<=1
20030
30%30
的資料滿足n
<=5
n<=5
n<=5
60
%60%
60%的資料滿足n
<
=500
n<=500
n<=5
00100
%100%
100%
的資料滿足n
<
=1000
n<=1000
n<=1
000。
輸入資料保證bi−
ai
bi-ai
bi−a
i要大於等於titi
ti,且小於2ti
2ti2t
i這道題我們用dp來做,設f[i
]f[i]
f[i]
放當前時間點的最少工作時間
則動態轉移方程為
#include
#include
using
namespace std;
int n, t[
10001
], a[
10001
], b[
10001
], f[
10001
], s =
2147483647
, ss =
-2147483647
;bool tt;
intmain()
for(
int i = s; i <= ss; i++
) f[i]
=2147483647
;//設初始值
f[s]=0
;for
(int i = s; i <= ss; i++)}
if(tt) f[i +1]
=min
(f[i +1]
, f[i]);
}}printf
("%d"
, f[ss]);
return0;
}
08年東莞特長生 獎金
08年東莞特長生 獎金 time limit 1000ms memory limit 65536k total submit 326 accepted 108 description 由於無敵的凡凡在2005年世界英俊帥氣男總決選中勝出,yali company總經理mr.z心情好,決定給每位員工發...
08年東莞特長生 獎金 題解
題目 由於無敵的凡凡在2005年世界英俊帥氣男總決選中勝出,yal iyali yali c om pany company compan y總經理mr.zmr.z mr.z 心情好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是m r.zmr.z mr....
09年特長生第四題 開發區規劃
小王是d市主管經濟的副市長,由於經濟發展的需要,要在d市組建乙個高新技術開發區,經過研究,規劃局在d市的東部劃出了一塊土地作為開發區選址。這塊土地是一塊矩形平原,小王準備在上面修建一些建築。為了規劃方便,他將矩形劃分成nm格。棘手的是,這塊土地有些歷史文化遺址散布在某些格仔內,這些歷史文化遺址是萬萬...