传送门:HDU - 2044
题意:
蜜蜂只能从左向右走,不能返回
思路:递推公式dp[i] = dp[i-2]+dp[i-1],i代表两蜂房之间的距离,即从序号为1的蜂房到序号为i+1的蜂房的线路数,只能由左边相邻的两个格子到达,把前面两个格子线路数相加就行了,这样一来,dp[b-a]就是答案了
AC代码:
#include <iostream>
#include <cstdio>
#define LL long long
int main(){
LL dp[51];
int a, b, n;
scanf("%d", &n);
dp[1] = 1;
dp[2] = 2;
for (int i=3; i<=50; ++i ){
dp[i] = dp[i-2]+dp[i-1];
}
while ( n-- ){
scanf("%d%d", &a, &b);
printf("%lld\n", dp[b-a]);
}
return 0;
}