區間DP結構

2021-06-22 20:50:05 字數 538 閱讀 2628

區間動態規劃問題一般都是考慮,對於每段區間,他們的最優值都是由幾段更小區間的最優值得到,是分治思想的一種應用,將乙個區間問題不斷劃分為更小的區間直至乙個元素組成的區間,列舉他們的組合 ,求合併後的最優值。

設f[i,j](1<=i<=j<=n)表示區間[i,j]內的數字相加的最小代價

最小區間f[i,i]=0(乙個數字無法合併,∴代價為0)

每次用變數k(i<=k<=j-1)將區間分為[i,k]和[k+1,j]兩段

for p:=1 to n do // p是區間長度,作為階段。 

for i:=1 to n do // i是窮舉的區間的起點

begin

j:=i+p-1; // j是 區間的終點,這樣所有的區間就窮舉完畢

if j>n then break; // 這個if很關鍵。

for k:= i to j-1 do // 狀態轉移,去推出 f[i,j]

f[i , j]= max 

end; 

這個結構必須記好,這是區間動態規劃的**結構。

線性dp 區間dp

1 尼克的任務 額一道挺水的題,愣是做了幾個小時 動態規劃大致的思路還是找乙個轉移 換個詞就是影響 我們可以明顯看出本題的規則 空暇時,一遇到任務必須挑乙個接 求1 n時間內最大空暇時間 所以將任務排序是必要的,兩個關鍵字 再來想象一下當我做到第i 個任務時,我在 st i st i t i 1 時...

線狀DP及區間DP

這裡我們都用到動態規劃的思想 dynamic programming,簡稱dp。本質就是組合子問題來求解原問題,且對每個子問題只求解一次。一般來說四個步驟 1.刻畫乙個最優結構特徵 2.遞迴的定義最優解值 3.計算最優解的值 4.利用計算出的資訊構造乙個最優解 這邊直接給出 include incl...

區間dp小結

區間dp,顧名思義,就是在區間上dp,即把整個區間劃分為乙個個的小區間,在小區間內dp求出最優值,然後把這些小區間合併以後就是整個取件的最優值。下面是一些比較經典的區間dp題目 1.nyoj 737 石子合併 題意 有n堆石子,每堆有a i 個,每次合併時只能合併相鄰的兩堆,代價為兩堆石子的個數之和...