決策單調

四邊形不等式

w(x,y)w(x,y) 是定義在整數集合上的二元函數
若對於定義域上的任意整數 abcda,b,c,d,其中 abcda\le b\le c\le d
都有 w(a,c)+w(b,d)w(a,d)+w(b,c)w(a,c)+w(b,d) \le w(a,d)+w(b,c) 成立
則稱函數 ww 滿足四邊形不等式
簡單的說就是 相交小於包含


定理

若對於定義域上的任意整數 a,ba,b,其中 a<ba<b,都有
w(a,b+1)+w(a+1,b)w(a,b)+w(a+1,b+1)w(a,b+1)+w(a+1,b)≥w(a,b)+w(a+1,b+1)
則函數 ww 滿足四邊形不等式


決策單調性

dp[i]=min(dp[j]+w(j,i))j[0,i)dp[i] = min(dp[j] + w(j, i)),j \in [0,i)
若函數 ww 滿足四邊形不等式,則 dpdp 具有決策單調性

注意:若 dp[i]=max(dp[j]+w(j,i))j[0,i)dp[i] = max(dp[j] + w(j, i)),j \in [0,i)
則需滿足定理 w(a,b+1)+w(a+1,b)w(a,b)+w(a+1,b+1)w(a,b+1)+w(a+1,b) \le w(a,b)+w(a+1,b+1)
也就滿足四邊形不等式 w(a,c)+w(b,d)w(a,d)+w(b,c)w(a,c)+w(b,d) \ge w(a,d)+w(b,c)


規律

如果 dpdp 函數沒有 dp[j]dp[j] 這一項,直接分治 Yet Another Minimization Problem
ww 的導函數是常數,也就是原函數爲直線,直接斜率優化

導函數遞增、求最大值(檸檬),或者導函數遞減、求最小值,要用單調棧
導函數遞增、求最小值(詩人小G),或者導函數遞減、求最大值(Lightning Conductor),要用單調隊列


做法

若用單調隊列,設 k[tail]k[tail] 表示 tailtailtail+1tail+1 兩點,在 k[tail]k[tail] 處開始,tail+1tail+1 更優
則需要二分 calcal 計算 k[tail]k[tail],注意二分的判斷
入隊時若滿足 k[tail-1]>=cal(q[tail], i) ,則 q[tail]q[tail] 直接出隊
取最優值時若滿足 k[head]<=i,則 q[head]q[head] 直接出隊
根本不需要弄什麼三元組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章