受过训练的小蜜蜂嗡嗡嗡(简单dp,斐波那契)

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

猜你喜欢

转载自blog.csdn.net/RIPKEY/article/details/115366471