本文主要是介绍HDU-2044-一只小蜜蜂...(简单DP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//传送门:http://poj.org/problem?id=3979
#include <queue>
#include <functional>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <assert.h>
using namespace std;
#define N 55
long long dp[N]; //注意可能超 int,并且进行打表
int main()
{int t;scanf("%d",&t);while(t--){int a,b;scanf("%d%d",&a,&b);if(a>b){ // a>b 输出0printf("0\n");continue;}memset(dp,-1,sizeof(dp));// 如果没查询过,则为-1dp[0]=dp[1]=1; // 斐波那契数列 第0位 与 第1位 为1if(dp[b-a]!=-1){ // dp[b-a] 值不为 -1,则表示已经查询过,直接输出结果printf("%lld\n",dp[b-a]);continue;}else{for(int i=2;i<=b-a;i++){ dp[i]=dp[i-1]+dp[i-2]; // 由于蜜蜂只能往右走,则可能从第 i-2 与 第 i-1位 到第 i 位}}printf("%lld\n",dp[b-a]);}return 0;
}
这篇关于HDU-2044-一只小蜜蜂...(简单DP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!