【DP入门】超级楼梯
2014-03-01 15:58
399 查看
A - 超级楼梯
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
Sample Input
2
2
3
Sample Output
1
2
#include <stdio.h>
#include <stdlib.h>
#define MAX 1010
int main()
{
int n,m[MAX];
while(scanf("%d",&n)!=EOF)
{
int i,j;
int s[MAX],a[MAX];
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
s[0]=0;
s[1]=1;
s[2]=2;
for(j=3;j<m[i];j++)
s[j]=s[j-1]+s[j-2];
a[i]=s[m[i]-1];
}
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}
}
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
Sample Input
2
2
3
Sample Output
1
2
#include <stdio.h>
#include <stdlib.h>
#define MAX 1010
int main()
{
int n,m[MAX];
while(scanf("%d",&n)!=EOF)
{
int i,j;
int s[MAX],a[MAX];
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
s[0]=0;
s[1]=1;
s[2]=2;
for(j=3;j<m[i];j++)
s[j]=s[j-1]+s[j-2];
a[i]=s[m[i]-1];
}
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}
}
相关文章推荐
- 【DP入门】超级台阶
- hdu 2041 超级楼梯(简单dp)
- Hdu 2041 超级楼梯 简单DP
- NOJ——1568走走走走走啊走(超级入门DP)
- 超级棒的一个DP问题详解(入门)
- (递推入门)超级楼梯 -- HDOJ
- HDU 2041 超级楼梯 简单DP动态规划 递归
- [递推简单dp]-hdu 2041 超级楼梯
- 动态规划入门-超级楼梯
- HDU 2041 超级楼梯(dp)
- hdu 2041 超级楼梯(简单dp 0/1背包变形)
- 动态规划入门-超级楼梯
- HDOJ2041 超级楼梯(dp & 打表)
- HDU2041 超级楼梯(DP)
- 动态规划入门-超级楼梯
- HDU - 2041 超级楼梯 (斐波那契dp)
- DP Problem I:超级楼梯(HDU 2040)
- 动态规划入门-超级楼梯
- 超级楼梯【dp】=【打表】
- 概率DP入门总结 16题