動態規劃 常見做法 填表法

2021-09-25 04:34:41 字數 1195 閱讀 2979

填表法,是dp最常見的做法。

以未知的量為基礎,通過已知的量來重新整理當前的未知量。

這是dp最基礎的做法。通常,我們大多題目都可以用這種方法實現。

楊輝三角

description

楊輝三角是二項式係數在三角形中的一種幾何排列。它的每個數等於它上方兩數之和,每行數字左右對稱,由 1 開始逐漸變大。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

請求出楊輝三角的第 n 行,第 m 項的數字是什麼。

input

第一行輸入兩個整數 n,m代表行數和列數。(1≤n,m≤50)

output

輸出乙個整數,代表楊輝三角的第 n 行,第 m項的數字。

sample input 1

6 3sample output 1

10

楊輝三角,本質上和我們講的填表法很像(做法就是經典的填表法)。

求這個出楊輝三角的座標為(n,m)的數字是什麼,應該找它上兩個的數。

這就是填表法的標誌,我們程式就可以用填表法來寫。

![在這裡插入描述](

領悟到填表法的精髓了吧?

相信聰明的你,一定能夠自己寫**了呢!

#include

using

namespace std;

int dp[

1010][

1010];

int n,m;

intmain()

} cout<

[m];

return0;

}

ycoj(a)|傳娃娃(傳送門)

洛谷p1004方格取數(傳送門)

動態規劃 常見做法 記憶化搜尋

記憶化搜尋,是最容易寫,也是效率較高的一種做法。雖然本質上是dfs這種搜尋的思路,但其對搜尋過的狀態進行記錄,從而完成對未知狀態的推導,實際上也是一種dp的思想。洛谷p1434 shoi2002 滑雪 傳送門 輸入輸出格式 輸入格式 輸入的第一行為表示區域的二維陣列的行數r和列數c 1 r,c 10...

動態規劃常見型別

乙個揹包總容量為v,現在有n個物品,第i個 物品體積為weight i 價值為value i 現在往揹包裡面裝東西,怎麼裝能使揹包的內物品價值最大?例題 給定乙個數m,將m拆成不同的自然數的和的形式有多少種方案,這就是典型的01揹包問題,揹包容量為m,物品件數為k,這裡面的k是隱含條件,可以求出來,...

關於動態規劃的一般做法

我認為動態規劃的最後一步特別關鍵,乙個關於動態規劃的題目,最先需要的是弄明白它的最後一步,從最後一步起,一步一步的往前推。所謂的動態規劃,就是把乙個十分複雜的大問題劃分成乙個乙個的子問題,通過解決子問題來解決最終的大問題,如果你所有的子問題都弄明白了,那麼最終的大問題也就迎刃而解了,子問題的解決步驟...