欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

B - 一只小蜜蜂...

发布时间:2024/1/17 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 B - 一只小蜜蜂... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Description

有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 
其中,蜂房的结构如下所示。 

 

Input

输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。 

Output

对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。 

Sample Input

2 1 2 3 6

Sample Output

1 3
题解:因为蜂房的特殊结构,1到n的步数和k+1到n+k的步数是相等的
所以用dp[n-1]来储存步数。
dp[i] = dp[i-1] + dp[i-2];(i大于2); #include<cstdio> #include<cstring> #include<iostream> #include<stdlib.h> #include<vector> #include<queue> #include<cmath> using namespace std; #define maxn 100 #define oo 0x3f3f3f #define PI 3.1415926535897932 int n; int k; long long dp[maxn]; void init() {for(int i=3; i<=maxn; i++)dp[i] = dp[i-1] + dp[i-2]; } int main() {int t;scanf("%d", &t);dp[1] = 1;dp[2] = 2;while(t--){init();int m,n;scanf("%d%d",&m,&n);k = n - m;printf("%I64d\n",dp[k]);}return 0; }

 

转载于:https://www.cnblogs.com/biu-biu-biu-/p/5744488.html

总结

以上是生活随笔为你收集整理的B - 一只小蜜蜂...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。