HDU 2044 一只小蜜蜂... HDU 2041 超级楼梯

推公式得出斐波那契数列

#include<stdio.h>
__int64 dp[60];
int main(){
	int n;
	#ifndef ONLINE_JUDGE
	freopen("in.txt","r",stdin);
	#endif
	int a,b,T;
	scanf("%d",&T);

	while(T--){
		scanf("%d%d",&a,&b);
		if(a>b){
			printf("0\n");
			continue;
		}
		dp[a]=1;
		dp[a-1]=0;
		for(int i=a+1;i<=b;i++) dp[i]=dp[i-1]+dp[i-2];
		printf("%I64d\n",dp[b]);
	}
	return 0;
}

超级楼梯一样的:

#include<stdio.h>
__int64 dp[60];
int main(){
	int n;
	#ifndef ONLINE_JUDGE
	freopen("in.txt","r",stdin);
	#endif
	int a,b,T;
	scanf("%d",&T);

	while(T--){
		scanf("%d",&b);
		a=1;
		dp[a]=1;
		dp[a-1]=0;
		for(int i=a+1;i<=b;i++) dp[i]=dp[i-1]+dp[i-2];
		printf("%I64d\n",dp[b]);
	}
	return 0;
}
时间: 2024-12-27 09:06:21

HDU 2044 一只小蜜蜂... HDU 2041 超级楼梯的相关文章

hdu 2044 一只小蜜蜂...(简单dp)

一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 73139    Accepted Submission(s): 26257 Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数.其中,蜂房的结构如下所示. Input 输入数据的第

hdu 2044 一只小蜜蜂... (java)

问题: 第一次用的int没能过,改成long就行了,每次不知道能否够用时就测一个极限值 一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46893    Accepted Submission(s): 17087 Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计

HDU 2044 一只小蜜蜂... 简单动态规划

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044题目描述:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数.其中,蜂房的结构如下所示. 输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50).对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行.题目分析:对于这道题目,给我a和b,求从蜂房a到蜂房b

HDU - 2044 一只小蜜蜂...

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044 分析: 从1-2有1种方法,从1-3可以由1-3或1-2-3,总共2种,由1-4可由1-2-3-4或1-3-4或1-2-4总共3种,可以这样想: 想到达4必需到达3或2,然后计算到达3或2的所有路线,加起来就是所有的路线数,f(4)=f(3)+f(2):由此可以想到斐波那契数列 Sample Input 2 1 2 3 6 Sample Output 1 3 *****************

HDU 2044 一只小蜜蜂...(递推,Fibonacci)

题意:中文题. 析:首先要想到达第 n 个蜂房,那么必须经 第 n-1 或第 n-2 个蜂房,那么从第 n-1 或第 n-2 个蜂房到达第 n 个,都各自有一条路线, 所以答案就是第 n-1 + 第 n-2 个蜂房,即 ans[i] = ans[i-1] + ans[i-2];注意要用long long 因为超int了. 代码如下: #include <iostream> #include <cstdio> #include <algorithm> #include &

HDU - 2041 超级楼梯

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041 解题思路:运用斐波纳契数列 斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 由题目可知,每次只能走一级或两级.因此从第一级走上第二级只能走一步,只有1种走法.从第一级走上第三级,可以从第一级直接走两步,也可以从第二级走一步.有2

HDU 2041 超级楼梯 简单动态规划

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041题目大意:有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?这道题目在之前的随笔--动态规划入门之小明课间爬台阶--中有详细地讲解过,和之前地随笔地不同之处在于这里你只能跨一步或两部,而之前的随笔中小明还可以一下子跨三布.所以,这里推导出地状态转移方程为:        当n=0或1时,f[n] = 1        当n>=2时,f[n] = f[n-

hdu 2041 超级楼梯(简单dp)

超级楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 58070    Accepted Submission(s): 29503 Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行

hdu 2041 超级楼梯(java)

问题: 递归算法,此类题没有思路时可以多算组数据看其中的规律. 超级楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36835    Accepted Submission(s): 18920 Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? In