HDU2044
题意:如图
思路:从终点判,蜜蜂每次只能从前1个蜂房或者前2个蜂房过来所以:dp[i]=dp[i-1]+dp[i-2];再数出终点和起点相差的格子数为b-a+1,记得开longlong。
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int t,dp[50],i,n,a,b;
dp[1]=0;
dp[2]=1;
dp[3]=2;
cin>>t;
while(t--){
cin>>a>>b;
for(i=4;i<=b-a+1;i++){
dp[i]=dp[i-1]+dp[i-2];
}
cout<<dp[b-a+1]<<endl;
}
}