题意:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
思路:题目中没有图,去百度了下,然后简单的写了下前几个数之间可能对应的路线数就找到了DP公式:a[i]=a[i-1]+a[i-2];
感想:有时候找到DP公式后题就很简单了。
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int t,i;
long long a[51];
a[1]=1;
a[2]=2;
a[3]=3;
for(i=3;i<51;i++)
a[i]=a[i-1]+a[i-2];
scanf("%d",&t);
while(t--)
{
int m,n,i,j;
scanf("%d%d",&m,&n);
j=n-m;
printf("%I64d\n",a[j]);
}
return 0;
}