您的位置:首页 > 其它

Problem-P

2016-05-08 10:39 225 查看
概述:现在规定了平面内可以行走的方向,向左向右和向上,不能够向下,现在给出行走的步数,问在这个步数内最多有多少种方案。

思路:一个类似与斐波那契数列的地推题目,不过与斐波那契数列不同的是,在选择向左或是向右走一步之后,下一步只能有两个方向,而在选择向上行走时,可以有三个方向,即向左上或是右上或者一直向上。也就是在相邻的某一步内,选择的方案成为两倍,即f(x)=2*f(x-1)+f(x-2)。

感想:看到题目,第一反应是斐波那契数列,就按照这个思路开始做题,结果提交时wrong,然后重新推理时候才发现向上时候的不同。。。昨天做斐波那契的题做多了。。。思维固定了。。尴尬。

#include<iostream>
using namespace std;
int main()
{
int N;
int m;
int f[25];
f[1]=3;
f[2]=7;
for(int i=3;i<=20;i++)
f[i]=2*f[i-1]+f[i-2];
cin>>N;
while(N--)
{
cin>>m;
cout<<f[m]<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: