#36859: 一維DP


harlivy_forever (噴火水雞肉飯)

學校 : 國立嘉義高級中學
編號 : 160563
來源 : [223.139.218.96]
最後登入時間 :
2024-03-10 11:56:58
f173. m6a1-作物種植(Plant) -- TOI練習賽2020年6月潛力組 | From: [220.143.41.224] | 發表日期 : 2023-08-12 01:33

將作物資訊以開始位置由小到大排序,令DP[i]是「當道路長i時,最大的總種植數」,接著跑T次,對於i等於某作物的結束位置一直到i等於M時做轉移,過程如下:

若選擇不種該作物,DP[i]不變;若選擇種植該作物,DP[i]=DP[該作物的起始位置]+該作物所需道路長度,這兩者取max

原理是只有當道路長度比某作物的結束位置長時,才能種植該作物,也就是說在道路長度短於該作物的結束位置時,都是不能種植的。當我們在決定種植某作物時,DP[該作物的起始位置]若小於先前已經種下的作物結束位置(也就是所謂的發生重疊),則會出現上一句所說道路長度短於結束位置的情形,因此先前種下的作物便不會被算進去;沒有重疊則無事發生,先前種下的照常算。簡單來說,利用DP[某作物的起始位置]便是在需要時取消種植先前種下且會重疊的作物,讓他不會被算進去。

不是很會表達><,希望需要的人看得懂我在公三小。

 
ZeroJudge Forum