Problem Description

在一无限大的二维平面中,我们做例如以下如果:

1、  每次仅仅能移动一格。

2、  不能向后走(如果你的目的地是“向上”,那么你能够向左走,能够向右走,也能够向上走,可是不能够向下走);

3、  走过的格子马上塌陷无法再走第二次;



求走n步不同的方案数(2种走法仅仅要有一步不一样,即被觉得是不同的方案)。

Input

首先给出一个正整数C,表示有C组測试数据

接下来的C行,每行包括一个整数n (n<=20),表示要走n步。

Output

请编程输出走n步的不同方案总数;

每组的输出占一行。

Sample Input

2
1
2

Sample Output

3
7

有些统计问题能够直接通过多算几步找出规律。但这个仅仅算三步就能让人吐血,所以还是得分析过程的变化规律

设f[n]为第n步的方案,a[n]为向上走的方案。b[n]为向左右走的方案

易得f[n]=a[n]+b[n];

而上一步无论是向哪里走,这一步都能够向上走。所以a[n]=a[n-1]+b[n-1]=f[n-1];

假设上一步向左走。那么这步除了向上就仅仅能向左走,所以本来b[n]=2*(a[n-1]+b[n-1])。但少了左右的一种情况,要减去b[n-1]。所以b[n]=2*a[n-1]+b[n-1];

把上面两个式子带入f[n]得

f[n]=2*(a[n-1]+b[n-1])+a[n-1]=2*f[n-1]+f[n-2];

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int n,i,j,m,a[30];
scanf("%d",&n);
while(n--)
{
a[0]=3;
a[1]=7;
scanf("%d",&m);
for(i=2;i<m;++i)
a[i]=2*a[i-1]+a[i-2];
printf("%d\n",a[m-1]);
}
return 0;
}

hdu2563——统计问题的更多相关文章

  1. spark处理大规模语料库统计词汇

    最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...

  2. TFS 测试用例步骤数据统计

    TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...

  3. java统计字符串单词的个数

    在一些项目中可能需要对一段字符串中的单词进行统计,我在这里写了一个简单的demo,有需要的同学可以拿去看一下. 本人没怎么写个播客,如果有啥说的不对的地方,你来打我啊 不说废话了直接贴代码: 实现代码 ...

  4. 统计iOS项目的总代码行数的方法

    打开终端, 用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or - ...

  5. 微信小程序二维码推广统计

    微信小程序可以通过生成带参数的二维码,那么这个参数是可以通过APP的页面进行监控的 这样就可以统计每个二维码的推广效果. 今天由好推二维码推出的小程序统计工具HotApp小程序统计也推出了带参数二维码 ...

  6. 微信小程序监控 - HotApp统计

    HotApp小程序统计,第一个专业的微信第三方小程序监控统计工具 1.什么是HotApp小程序统计 HotApp小程序统计是第一个微信第三方小程序统计工具,就像做android 和 ios开发的人知道 ...

  7. 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等

    有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...

  8. SQL统计

    --按周统计SELECT TOP 10DATENAME(year,AddDate) 年,DATENAME(week,AddDate) 周,COUNT(1) 单量,SUM(total) 总金额,AVG( ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(39)-在线人数统计探讨

    系列目录 基于web的网站在线统计一直处于不是很精准的状态!基本上没有一种方法可以确实的统计在线用户! Discuz!NT 在线用户功能算是做得比较好的!参考资料 他的原理大致是根据用户的操作间隔来确 ...

随机推荐

  1. 使用PowerDesigner进行代码生成

    很多代码生成器都选择了从表结构来生成领域模型,这样的方案有一个前提,就是领域模型和数据库表结构是同构的,也就是说领域模型中的类和数据库中的记录结构十分吻合,这样数据库表结构可以简单的直接映射到领域模型 ...

  2. 【Javascript 基础】使用数组

    Javascript 数组的工作方式与大多数编程语言的数组类似. <!DOCTYPE html> <html lang="en"> <head> ...

  3. python中MySQLdb模块用法实例

    篇文章主要介绍了python中MySQLdb模块用法,以实例形式详细讲述了MySQLdb模块针对MySQL数据库的各种常见操作方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python中 ...

  4. ES6 动态计算属性名

    在ES5之前,如果属性名是个变量或者需要动态计算,则只能通过 对象.[变量名] 的方式去访问. <script type="text/javascript"> var ...

  5. javascript洗牌算法 乱序算法 面试题

    1.2种方案代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=" ...

  6. 【VBA】查看当前窗口的宽与高

    打开的Excle如何使用VBA查看当前窗口的宽与高呢?代码如下: Sub 查看宽度与高度() Dim myWidth As Double Dim myHeigth As Double myWidth ...

  7. mongo: 索引

    索引创建 在学习索引之前,我们先看一下,如果没有添加索引时,我们用explain()函数,查看查询计划是什么样的. 发现使用的是BasicCursor,那么就代表我们没有索引,当我们查某一个数据的时候 ...

  8. linux安全组配置

    万网的是这样子配置的:

  9. Android Developer:合并清单文件

    使用Android Studio而且基于Gradle构建.每一个App能在多个位置包括清单文件,比如在src/main文件夹下productFlavor.库.Android ARchive(AAR) ...

  10. PyQt5 GUI Programming With Python 3.6 (一)

    PyQt5 PyQt5是一个基于强大的图形程式框架Qt5的python接口, 主要包含以下几个大类: ● QtCore ● QtGui ● QtWidgets ● QtMultimedia ● QtB ...