c 動態規劃 數塔

2022-05-01 11:42:11 字數 989 閱讀 9430

觀察下面的數塔。寫乙個程式查詢從最高點到底部任意位置結束的路徑,使路徑經過數字的和最大。

每一步可以從當前點走到左下角的點,也可以到達右下角的點。

int max(int a,int b)//max函式求兩個數字之間的最大值

int main()

}dp[1][1] = a[1][1];//把起點直接放在dp裡面

for (int i = 2;i <= n;i ++)

}int ans = 0;

for (int i = 1;i <= n;i ++)

cout << ans << endl;

return 0;

}

#include #include #include //stl庫函式

using namespace std;

int main()

}memset(dp,0,sizeof(dp));//把dp的值初始化為0

for (int i = 1;i <= n;i ++)//把a最後一行賦值到dp,因為最後一行的dp就等於最後一行數本身

for (int i = n - 1;i >= 1;i --)}}

cout << dp[1][1] << endl;//輸出

return 0;

}

動態規劃 數塔

如圖所示為乙個數塔,從頂部出發在每乙個節點可以選擇向左走或向右走,一直走到最底層,要求找出一條路徑,使路徑上的數值和最大。include define n 50 int data n n d n n 定義陣列data,d int n void operate for i n 1 i 1 i else...

動態規劃 塔數

有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,且所有的整數均在區間 0,99 內。...

數塔 動態規劃)

在講述dp演算法的時候,乙個經典的例子就是數塔問題,它是這樣描述的 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?已經告訴你了,這是個dp的題目,你能ac嗎?input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整...