遞推遞迴經典題型(一) 麗澤湖水怪

2021-10-23 00:24:00 字數 673 閱讀 5371

這題的大概意思就是說在北師珠有麗澤湖水怪,小水怪從第四年開始每一年都能生乙個新的小水怪,並且水怪不會掛。

重點在如何理解「新增」的人數是三年前在世的水怪數量

從第四年開始算因為第四年的fib(n-3)才是有意義的

要用longlong 和變長陣列因為fib55 已經很大了

如果用單純的遞迴來做的話,有可能會爆空間和時間

因為fib(55)很可能產生fib2pow55的運算次數,大量的浪費運算

同時為了算fib(55)不得不同時開闢不必要的空間

最壞的結果可能導致同時存在50多個棧

所以我們採取遞推的做法

#includeusing namespace std;

long long a[58];

int main(int argc, const char * ar**)

int in;

cin>>in;

// //為了解決避免實時輸出輸入的問題,我們加入乙個變長陣列來解決這個問題

// vectorinp;//用來記錄輸入資料

// inp[0]=-1;//轉換自然陣列和人類計數順序;

// while(in)

// // for(int i=1;;i++)

// return 0;

}

遞迴與遞推 鑰匙計數之一

hdu 1438 一把鎖匙有n個槽,槽深為1,2,3,4。每鎖匙至少有3個不同的深度且至少有1對相連的槽其深度之差為3。求這樣的鎖匙的總數。input 本題無輸入 output 對n 2且n 31,輸出滿足要求的鎖匙的總數。sample output n 2 0 n 3 8 n 4 64 n 5 3...

遞迴的一些經典應用

今天看了一些關於遞迴的知識,順便學習了一些經典的問題,敲了一些小 首先是遞迴實現的經典的二分問題,如下 include include using namespace std int a 10 int binsearch int left,int right,int goal int main re...

2016 7 9重學了一波遞迴和遞推

include include using namespace std 猴子吃桃問題 猴子第一天摘下n個桃子,當時就吃了一半,還不過癮,就又吃了乙個。第二天又將剩下的桃子吃掉一半,又多吃了乙個。以後每天都吃前一天剩下的一半零乙個。到第10天在想吃的時候就剩乙個桃子了,求第一天共摘下來多少個桃子?我的...