1.**dp
有了前面學習分治法的經驗,dp就比較好說了,分治法就是把乙個問題分解成若干個不相干的子問題(分到不能再分)求解;dp通過尋找轉態轉移方程,去解決子問題(存在重複),它的本質屬於遞迴。
2.dp的三個基本要素
1.最優子結構:確保狀態轉移方程所選擇的子問題也能給出最優解
2.邊界:狀態方程停止的條件
3.轉態轉移方程:子問題間的關係式。
3.爬樓梯
問題描述:乙個人每次能爬樓梯的階數是一階或者兩階。給定乙個階梯的總階數,問有多少不同的選擇爬上樓梯。
輸入乙個整數n,表示n種階梯數
輸出n行,每行表示每一種階梯的選擇總數。
input13
outout
3
#includeusing namespace std;
const int maxn = 1e5 ;
main()
}
遞迴 DP 爬樓梯問題
乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。首先輸入數字n,代表接下來有n組輸入,50 n 0,然後每行乙個數字,代表台階數,數字為小於60的整數 對每一組輸入,輸出青蛙的跳法。312 3 輸出樣例 1 23 思路 爬樓梯的方法就是乙個斐波那契數...
python爬樓梯遞迴 爬樓梯(Python3)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...
python爬樓梯演算法 爬樓梯(Python3)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...