一些项目——统计问题

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;
}
时间: 2024-09-29 16:20:55

一些项目——统计问题的相关文章

J2EE 第二阶段项目之部署项目、分工安排

SVN 先通过使用教程,和能够介绍了解svn. svn使用教程总结   ;   svn功能介绍. 分工安排:我的任务就是项目统计. 1 效益统计 1 教育效益统计表 (教育效益统计表,增,改,查看,查) 2 农牧林效益统计表 (农牧林效益统计表,增,改,查看,查) 3 乡村效益统计表    (乡村效益统计表,增,改,查看,查)     2 地区类别统计 1 分类别统计 1 申报时(查) 2 审批后 (查) 2 分地区统计 1 申报时 (查) 2 审批后 (查) 效益统计,这三张表的字段特别的多,

数据结构运动会分数统计实习报告源码

#include<cstdio> #include<cstring> int n,m,w; struct Student { char name[20]; int mingci; int score; }; struct Xiangmu { int bianhao; char xiangname[20]; Student students[50]; int xiangscore; }; struct School { char xiaoname[20]; int renshu; i

CentOS 6.8 部署django项目

1.安装python3.5(默认是2.6) 参考:http://blog.csdn.net/shaobingj126/article/details/50290359 http://blog.csdn.net/u010073893/article/details/54863209 大致步骤: 1.CentOS6.5 安装Python 的依赖包 yum update yum groupinstall "Development tools" yum install zlib-devel b

如何更好地进行项目工时管理?

项目太多项目工时无法实时掌控:项目成员总是忘记填报工时:工时上报不合理导致项目成本不可控:很多工时管理系统复杂不易很快上手,且费用较高难以接受:数据易丢失,不便于统计.那怎样才能更好地实时把握项目的工时成本呢?怎样才能让员工更好地完成项目工时上报呢?怎样才能避免需要亲自督促成员的困扰呢微赢工时管理通过可以清晰明确地跟踪不同项目.不同成员所用工时,其中包括:上报工时+快速审批+灵活设置定时提醒+工时数据统计,灵活设置定时提醒,提醒成员按时上报工时,提醒项目经理按时审批,避免了误报或忘报的情况,无需

敏捷项目研发工具

Leangoo(中文名:领歌)是一款基于看板的敏捷项目协作工具. 它的设计融入了先进的敏捷管理思想,由多位业界知名敏捷管理顾问提供支持,并由专业的敏捷开发团队精心打造而成,完美支持Scrum敏捷开发和看板方法. 我们可以使用Leangoo可视化地进行项目需求.任务.问题和文档的管理和协作,随时随地跟踪团队工作进展. 它核心是看板,通过看板共享和实时同步团队工作以实现高效协同, 团队工作体现为卡片,内容可以是需求.任务.问题等. 更提供了永久免费个人版(无任何限制)在线企业版以及私有部署版本. 产

.NET ORM 开源项目 FreeSql 1.0 正式版发布

一.简介 FreeSql 是 .NET 平台下的对象关系映射技术(O/RM),支持 .NetCore 2.1+ 或 .NetFramework 4.0+ 或 Xamarin. 从 0.0.1 发布,历时整整一年的迭代更新,原计划元旦发布1.0,可能作者比较急提前了几天发布.其实是元旦有其他事-- 本文内容从简,介绍项目的主要功能框架,以及暂时能想到的可能比较有说服力的特性. 二.项目统计 主仓库解决方案共计项目:29个 单元测试:3510个 Code Issues:168个 文档Wiki:43个

Redis监测(Redis Monitoring)

庞数据 开发了Redis 服务器实时监测 APP 啦(Redis Monitoring). 你想知道,你服务器的性能状态吗?想知道运营时有什么异常吗?庞数据给您提供实时监测服务. 可在Redis服务器上监测到,Key增加状态,内存使用率(CPU),数据逐出(Evictions )命令处理总数,延迟时间(Latency),内存碎片率(Fragmentation Ratio) 等等··· 这样的数据是非常重要的. Redis 监测(Monitor) 是 ,通过庞数据Cloud(https://pan

如何高效利用GitHub

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type="text/javascript" language="javascript"> var idTmr; function getExplorer() { var explorer = window.navigator.userAgent; //ie if(explore