hdu 2045(递推)
生活随笔
收集整理的這篇文章主要介紹了
hdu 2045(递推)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1個格子的時候?? 3種
2個格子的時候?? 6種
3個格子的時候?? 6種
4個格子的時候:
????? 分兩種情況:
那么怎么計算有4個格子的情況呢?
設(shè)函數(shù)f(n), f(1) = 3; f(2) = 6;?f(3) = 6;
f(4) = f(3) + 2*f(2)=18;
當(dāng)有n個格子,也分為兩種情況,我們只需要考慮最后2個格子的情況
從而有遞推公式:f(n)?= f(n-1) + 2*f(n-2)
AC:
#include<iostream> #include<cstdio> using namespace std;__int64 f[55]; int main() { f[1] = 3,f[2] = 6,f[3] = 6;for(int i = 4; i <= 50; i++)f[i] = f[i-1] + 2*f[i-2];int n;while(cin>>n){cout<<f[n]<<endl;}return 0; }像這種有條件限制的遞推,一定有"符合規(guī)則"和"不符合規(guī)則"這兩種情況討論。。此外,還要注意問題之間不能夠重疊了。比如f(n)能夠包括的情況,就不需要f(n-1)了,除非有f(n)不能涵蓋的情況。。
總結(jié)
以上是生活随笔為你收集整理的hdu 2045(递推)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot之session的
- 下一篇: 轻量级J2EE持久层解决方案,MiniD