1.不管什麼型別的遞推題目,總是有規律可循的。然而這個時候切記不可寫成遞迴形式,遞迴演算法最大特點就是有乙個回溯的過程,必然是要超時的,要解決超時問題,還需要轉化為遞推演算法。而遞推演算法與遞迴演算法正好相反,遞推是從後往前計算,而遞推正好是從前往後計算。
2.所做題目遞推公式總結:
2.1 骨牌方格,
dp[ i ] = dp [i-1] + dp[ i-2 ];
2.2 母牛的故事,dp[ i ] = dp [i-1] + dp[ i-3 ];
2.3
tiling_easy version,
dp[i]=dp[i-1]+dp[i-2]*2,
2.4 統計問題,a[i]=a[i-1]*2+a[i-2];
觀察不難發現,都是該項與前兩項之間的關係。
3.模板總結:
#include#includeusing namespace std;
long long dp[37];
void f()
int main()
{ int t;
int n;
f();
cin>>t;
while(t--)
{cin>>n;
cout<
遞迴遞推總結
1.遞迴比較好理解,而且就是自己調自己,就是把大問題轉換成小問題,最重要的就是把終止條件和遞迴方程。比較典型的就是 全排列和半數集 半數集和全排列都是一位一位的遞迴,半數集的結束條件就是等於1,全排列是位數到了最大。2.遞迴感覺比較靈活,就是要完成一件事需要多個步驟,每個步驟都進行不一樣的處理,經典...
遞迴遞推總結
遞迴是大問題轉化為小問題,不斷呼叫自身或不斷間接呼叫的一類演算法。遞迴演算法的關鍵是 1.要找出大問題和小問題的聯絡 遞迴定義。2.遞迴終止條件。遞推是一種用若干步可重複運算來描述複雜問題的方法.遞推的關鍵是想出遞推公式,一般遞推公式是從後面向前推,當然也有很多是從中間或者從前向後推。做這些題目主要...
遞迴遞推總結
遞推 遞推是用乙個遞推式通過迴圈來求解題目的過程,是乙個從前往後推的過程,根據已知的資料逐步推出結果,遞推問題最重要的就是找到遞推關係式。遞推注意點 1.要注意自己的遞推公示,一定要嚴謹不能出現錯誤。2 求遞推公式的時候應該多寫幾組資料來觀察遞推公式不要只寫兩到三組資料,防止出現偶然性。3.利用遞推...