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; } }