HDU2044一只小蜜蜂 简单记忆化搜索
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2044一只小蜜蜂 简单记忆化搜索相关的知识,希望对你有一定的参考价值。
http://acm.hdu.edu.cn/showproblem.php?pid=2044
由图可以知道,当前位置的路线数等于它从上面来的路线数加上它从左边来的路线数。
规律不难得出就是一个简单的斐波那契数列。
递推:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long int s[55];
int main(void)
{
s[0]=1;
s[1]=1;
int t; cin>>t;
while(t--)
{
int a,b; cin>>a>>b;
int m=b-a;
for(int i=2;i<=m;i++)
{
s[i]=s[i-1]+s[i-2];
}
cout<<s[m]<<endl;
}
return 0;
}
记忆化搜索
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
long long int s[55];
long long int dfs(int x)
{
if(x<=1) return 1;
if(s[x]!=-1) return s[x];
s[x]=dfs(x-1)+dfs(x-2);
return s[x];
}
int main(void)
{
memset(s,-1,sizeof s);
int t; cin>>t;
while(t--)
{
int a,b; cin>>a>>b;
int m=b-a;
cout<<dfs(m)<<endl;
}
return 0;
}
以上是关于HDU2044一只小蜜蜂 简单记忆化搜索的主要内容,如果未能解决你的问题,请参考以下文章