首页 > 学院 > 开发设计 > 正文

HDU-2044-一只小蜜蜂...(简单DP)

2019-11-06 06:48:32
字体:
来源:转载
供稿:网友
//传送门: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 55long 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 输出0      printf("0/n");      continue;   }   memset(dp,-1,sizeof(dp));// 如果没查询过,则为-1   dp[0]=dp[1]=1;           // 斐波那契数列 第0位 与 第1位 为1   if(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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表