标签:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044
分析:
想到达4必需到达3或2,然后计算到达3或2的所有路线,加起来就是所有的路线数,f(4)=f(3)+f(2);由此可以想到斐波那契数列
Sample Input 2 1 2 3 6 Sample Output 1 3
**********************************
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<queue> 5 #include<algorithm> 6 #include<cmath> 7 #include<iostream> 8 9 using namespace std; 10 typedef long long LL; 11 12 #define INF 0x3f3f3f3f 13 #define N 22000 14 #define MAXN 100000000 15 #define mod 1000000007 16 17 long long dp[60]; 18 19 int main() 20 { 21 int i,T,a,b; 22 dp[1]=1; 23 dp[2]=2; 24 for(i=3;i<60;i++) 25 dp[i]=dp[i-1]+dp[i-2]; 26 27 scanf("%d", &T); 28 29 while(T--) 30 { 31 scanf("%d %d", &a, &b); 32 33 printf("%lld\n", dp[b-a]); 34 } 35 return 0; 36 }
标签:
原文地址:http://www.cnblogs.com/weiyuan/p/5747564.html