by qw:
關於四邊形不等式或石子合併的資料。網上有很多。但有不少都是語焉不詳,直接拋給你幾個結論,讓人很難理解。這篇文章將以石子合併為例。證明關於四邊形不等式的一些結論。算是乙個溫習。
【題面】
在乙個操場上擺放著一排n(n≤20)堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。
試程式設計求出將n堆石子合併成一堆的最小得分和最大得分以及相應的合併方案。
【演算法分析】
下面只討論最小得分的情況,最大得分的情況類似。
設f[i,j]=min,再分兩種情形k≤j或k>j。下面只討論k≤j,k>j的情況是類似的。
情形1.1:k≤j,此時:
情形1.2:k>j,略去
情形2:i 設 y=max
z=max
仍需再分兩種情形討論,即z≤y或z>y。下面只討論z≤y,z>y的情況是類似的。
情形2.1,i 顯然的,我們有:
f[i,j]+f[i',j']<=w[i,j]+f[i,z-1]+f[z,j]+w[i',j']+f[i',y-1]+f[y,j']
因為w滿足四邊形不等式,所以:
f[i,j]+f[i',j']<=w[i,j']+w[i',j]+f[i',y-1]+f[i,z-1]+f[z,j]+f[y,j']
因為f[i,j']+f[i',j]=w[i,j']+w[i',j]+f[i',y-1]+f[i,z-1]+f[y,j]+f[z,j']
所以,要證f[i,j']+f[i'j]>=f[i,j]+f[i',j'],就要證f[z,j]+f[y,j']<=f[y,j]+f[z,j']。
因為i情形2.1,i綜上所述,f[i,j]滿足四邊形不等式。
事實上,對於任意f[i,j]=max + w[i , j], i < j的動規,若w滿足四邊形不等式,則f滿足四邊形不等式,則f有決策單調性。
【我的總結】
一般用四邊形不等式優化的題方程寫出來了後都比較明顯了
其實這一大段的證明一般寫個對拍都不會有問題,況且證明錯誤了也不好辦,對拍正確性自然會更高了
四邊形不等式
總結一下最近幾天對dp優化中的四邊形不等式的學習。證明什麼的似懂非懂,我還是太年輕了。第一種,n 2 nlogn 例題 由於許可權問題 不公開題面 就是1個體積均為1 300,100000個物品,做乙個100000的揹包。發現體積最多只有 300 種,分開做。對於同種體積的物品,顯然按照價值從大到小...
四邊形不等式
若有函式 a i,j 令 i,若有 a i j a i 1 j 1 le a i j 1 a i 1 j 則我們稱函式 a 滿足四邊形不等式。若我們在 dp 過程中會用到類似如下形式的方程 dp i j min dp k j or dp i k dp k 1 j w i j 那麼,只要代價函式 w ...
四邊形不等式優化DP
記錄一下,以免忘了 對於乙個形如 dp i j min dp i k dp k j w i j 的轉移方程 注意取最大值時不一定滿足四邊形不等式 若對於 a leq b leq c leq d 且 w leq w 那麼我們稱 w 關於區間包含關係單調 若對於 a leq b leq c leq d ...