1. 程式人生 > >決策單調性DP學習小記

決策單調性DP學習小記

四邊形不等式

解決形如這樣的DP式子的問題
F i , j = m i

n { F i 1 , k
+ w k + 1 , j
} ( i < = k < = j ) F_{i,j} = min\{{F_{i - 1,k} + w_{k + 1,j}}\}(i<=k<=j)
或者是
F i , j = m i n { F i 1 , k , F k + 1 , j } + w i , j ( i < = k < = j ) F_{i,j} = min\{F_{i - 1,k},F_{k +1,j}\} + w_{i,j}(i<=k<=j)
一般用於區間DP.

區間包含的單調性:
對於任意的 a < = b < = c < = d a<=b<=c<=d ,若 w ( b , c ) < = w ( a , d ) w(b,c)<=w(a,d) ,則稱 w w 具有區間包含的單調性.
四邊形不等式:
對於任意的 a < = b < = c < = d a<=b<=c<=d ,若 w ( a , c ) + w ( b , d ) < = w ( b , c ) + w ( a , d ) w(a,c)+w(b,d)<=w(b,c)+w(a,d) ,則稱 w w 滿足四邊形不等式.
可以形象理解成交叉之和小於等於包含之和.

倘若上述的 w w 函式滿足區間包含單調性和四邊形不等式,則 F F 函式滿足四邊形不等式.

p i , j p_{i,j} F i , j F_{i,j} 最優時取得的下標.
F i , j F_{i,j} 滿足四邊形不等式,則 p i , j p_{i,j} 單調.即 p i , j < = p i , j + 1 < = p i + 1 , j + 1 p_{i,j}<=p_{i,j+1}<=p_{i+1,j+1}

得到這些資訊後, k k 的範圍可以改寫成
p i , j 1 < = k < = p i + 1 , j p_{i,j-1}<=k<=p_{i+1,j}
這樣可以將複雜度優化至 O ( N 2 ) O(N^2) .
一般來講,可以將決策點打表打出來觀察是否每行每列均單調.
當然如果能手動證明四邊形不等式也是極好的.