這一部分僞代碼太長,因此只講解解題手段算法
核心思想是將複雜問題化解爲兩個簡單一點的問題,遞歸處理。spa
一個問題的最優解包含其子問題的最優解blog
證實:反證法,a=b+c中a的最優解若是不是b和c的最優解,則b和c的最優解和將優於a的最優解,矛盾,的證。遞歸
解決問題的遞歸算法中會重複求解相同的子問題bfc
解法:對每一個子問題的第一次求解存入表中,再次求解時直接查詢便可。im
r:表示最大價值查詢
s:表示此時分割位置,如i=8時的2表示繩子分爲二、6兩段,二、6對應i=2和i=6的rimg
右表記錄k值copy
pi表示Ai的第二維,pi-1表示Ai的第一維co
並非一般意義上的公共子序列(和常見的算法題中的不同),定義以下,
格子圖生成先補0,而後由上到小一行一行的填充,而結果讀取是從右下到左上的方向:
W爲機率矩陣,e爲消耗指望矩陣
先填W,後填e,注意表格行1:6,列0:5,root記錄對應e位置的r的值。
重建時看root,[1,5]位置爲2,表示2爲根,分解爲k1,{k3,k4,k5},再看[3,5]爲5,右子樹5爲根……