练习3-P

原创 2016年05月31日 11:19:34

题目:Problem P 

Problem Description
在一无限大的二维平面中,我们做如下假设:<br>1、&nbsp;&nbsp;每次只能移动一格;<br>2、&nbsp;&nbsp;不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);<br>3、&nbsp;&nbsp;走过的格子立即塌陷无法再走第二次;<br><br>求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。<br>

Input
首先给出一个正整数C,表示有C组测试数据<br>接下来的C行,每行包含一个整数n (n<=20),表示要走n步。<br>

Output
请编程输出走n步的不同方案总数;<br>每组的输出占一行。<br>

Sample Input
2 1 2

Sample Output
3 7

题意:

如题;

思路:

设第n步的走法为F(n),往上走的步数为a(n),往左或往右走的步数为b(n);所以F(n)=a(n)+b(n);接下来分别找前一个状态。因为不能往下走,所以向上走的步数只有一种选择就是上一次的步数相加:a(n)=a(n-1)+b(n-1)(前(n-1)步内往上走的步数+前(n-1)步内往左或右的步数);又因为走过的不能返回,所以往左或右走只有一种方法,但向上走可以是左上和右上两种,因此b(n)=2*a(n-1)+b(n-1);化简得F(n)=2*F(n-1)+F(n-2);


代码:

# include <iostream>

using namespace std;

int64_t b[25];

int bb()
{
    b[0] = 1;
    b[1] = 3;
    for (int i = 2; i < 51; i++)
    {
        b[i] = 2*b[i-1] + b[i-2];
    }
}


int main()
{
    bb();
    int n;
    cin >> n;
    while (n--)
    {
        int m;
        cin >> m;
        cout << b[m]<<endl;
    }

    return 0;
}


vim练习

学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。 我建议下面这四个步骤: 存活感觉良好觉得更好,更强,更快使用VIM的超能...
  • baiquan17
  • baiquan17
  • 2017年04月07日 11:57
  • 434

linux 各命令字练习

linux 各命令字练习
  • lile777
  • lile777
  • 2016年09月14日 17:48
  • 1956

css3 html5 3D动画练习

New Document div{ margin-bottom:10px; width:200px; height:100px; } @keyframes myfirst { from {bac...
  • zhaoqingkaitt
  • zhaoqingkaitt
  • 2015年01月10日 10:46
  • 1141

Android基础练习

1.自定义Toast 步骤,首先需要添加一个自定义的toast布局,然后通过构造方法实例化一个Toast对象即可 public void onToast(View view) { ...
  • u011337769
  • u011337769
  • 2017年06月08日 19:49
  • 312

练习学习Linq和Lambda

1、 查询Student表中的所有记录的Sname、Ssex和Class列。 select sname,ssex,class from student Linq:     from s in S...
  • make1828
  • make1828
  • 2014年07月23日 14:08
  • 665

oracle百例训练

 Oracle系列《一》:简单SQL与单行函数     使用s   cott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下 emp员...
  • u010098159
  • u010098159
  • 2016年03月24日 18:23
  • 1269

HTML练习-1

http://7xrp04.com1.z0.glb.clouddn.com/task_1_1_1.jpg 代码:   第一部分的          p{ margin: 0px; paddi...
  • itzhengmaolin
  • itzhengmaolin
  • 2016年08月01日 19:44
  • 353

Java Web学习(8):阶段小项目练习

一输出圆的信息        项目描述:编写一个JSP页面中声明圆的半径和计算方法,然后使用表达式,实现输出圆的半径,直径,面积和 周长的相关信息。        JSP实现代码: ...
  • erlian1992
  • erlian1992
  • 2016年07月12日 13:39
  • 3108

h5学习笔记: css布局案例练习

今天练习一下css相关的布局,没有写交互内容。在css布局中,发现也不少不熟悉的地方。只是没有形成概念,其次对一些用法比较模糊。日后需要加强一下这些。对平衡的两个div应该如何处理,还要继续想想办法。...
  • hero82748274
  • hero82748274
  • 2016年08月22日 21:55
  • 2350

一起学WEB(八) 一个网页练习(一)

通过一个网页练习,逐步建立漂亮的网站(一)
  • FebWaltz
  • FebWaltz
  • 2017年02月08日 09:23
  • 268
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习3-P
举报原因:
原因补充:

(最多只允许输入30个字)