HDU2084 數塔 動態規劃入門 遞推

2021-08-08 09:07:25 字數 959 閱讀 4931

題目思路: 從上往下狀態太多不好處理,那麼我們就從下往上遞推,每一層少乙個狀態。

設乙個一維陣列dp 初始狀態存最下面的那一行 

第五行dp[1]=4,dp[2]=5,dp[3]=2,dp[4]=6,dp[5]=5

往上遞推一層 轉移方程為 dp[j]=max(dp[j],dp[j+1])+a[i][j];

那麼對於第4行

dp[1]=max(4,5)+2=7;同理

dp[2]=max(5,2)+7=12;

...

ac**:

/*

2023年9月17日10:43:41

hdu2084

ac */

#include #include #include #include #include #include #include #include #include #include using namespace std;

const int maxn=110;

int a[maxn][maxn];

int dp[maxn];

int main()

} memset(dp,0,sizeof(dp));

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

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

} printf("%d\n",dp[1]);

/*test intput

for(int i=1;i<=n;i++)printf("\n");

} */

} return 0;

}

hdu2084動態規劃入門題 數塔

這個是動態規劃入門題,比較簡單。題意是 乙個數字組成的三角形,從上到下找一條路徑,使這條路徑上數字之和最大。解題思路,就是要從下往上看。舉個例子 如果你從上到下走到了第4行第1個數,也就是2,那麼接下來有兩個數可以走19和7,而你必然會選擇19。所以就可以根據這個思路更新上面一行的數。把2更新成2 ...

HDU 2084 數塔問題(動態規劃入門)

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

hdu 2084 數塔(動態規劃)

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