時間限制: 1 sec 記憶體限制: 128 mb
這一天,他來到了一座深山的山腳下,因為只有這座深山中的一位隱者才知道這種藥草的所在。但是上山的路錯綜複雜,由於小小豬的病情,晴天小豬想找一條需時最少的路到達山頂,但現在它一頭霧水,所以向你求助。 山用乙個三角形表示,從山頂依次向下有1段、2段、3段等山路,每一段用乙個數字t(1< =t< =100)表示,代表晴天小豬在這一段山路上需要爬的時間,每一次它都可以朝左、右、左上、右上四個方向走(**注意**:在任意一層的第一段也可以走到本層的最後一段或上一層的最後一段)。 晴天小豬從山的左下角出發,目的地為山頂,即隱者的小屋。
第一行有乙個數n(2< =n< =1000),表示山的高度。 從第二行至第n+1行,第i+1行有i個數,每個數表示晴天小豬在這一段山路上需要爬的時間。
乙個數,即晴天小豬所需要的最短時間。
5
12 3
4 5 6
10 1 7 8
1 1 4 5 6
10
在山的兩側的走法略有特殊,請自己模擬一下,開始我自己都弄錯了……
#include#include#includeusing namespace std;
int dp[1002][1002];
int a[1002][1002];
int main()
memset(dp, 60, sizeof(dp));
dp[1][1] = a[1][1];
for (int i = 2; i <= n; i++)
}if (flag == false)break;}}
cout << dp[n][1];
return 0;
}
動態規劃 什麼是動態規劃?
先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...
mysql動態規劃 動態規劃
動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...
《動態規劃》 ACM 動態規劃例題詳解
描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 圖1 圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。輸...