超级楼梯(HDU-2040)
生活随笔
收集整理的這篇文章主要介紹了
超级楼梯(HDU-2040)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Problem Description
? ? 有一樓梯共M級(jí),剛開始時(shí)你在第一級(jí),若每次只能跨上一級(jí)或二級(jí),要走上第M級(jí),共有多少種走法?
Input
? ??輸入數(shù)據(jù)首先包含一個(gè)整數(shù)N,表示測(cè)試實(shí)例的個(gè)數(shù),然后是N行數(shù)據(jù),每行包含一個(gè)整數(shù)M(1<=M<=40),表示樓梯的級(jí)數(shù)。
Output
? ??對(duì)于每個(gè)測(cè)試實(shí)例,請(qǐng)輸出不同走法的數(shù)量
Sample Input
2
2
3
Sample Output
1
2
思路:
設(shè):dp[i]為走到第i階的步數(shù)
則:
? ? 狀態(tài)轉(zhuǎn)移方程:dp[i]=dp[i-1]+dp[i-2];
? ? 邊界條件:dp[1]=1,dp[2]=1;
注意從第三階開始走
Source Program
#include<iostream> #include<cstring> #define N 41 using namespace std;int dp[N];int main() {int n,m;int i,j,k;cin>>n;while(n--){cin>>m;memset(dp,0,sizeof(dp));//初始化/*邊界條件*/dp[1]=1;dp[2]=1;for(i=3;i<=m;i++)dp[i]=dp[i-1]+dp[i-2];cout<<dp[m]<<endl;}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的超级楼梯(HDU-2040)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛C++语言:滔滔吃苹果
- 下一篇: 开关灯(信息学奥赛一本通-T1109)