zoukankan      html  css  js  c++  java
  • hdu-2563

    统计问题

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 8724    Accepted Submission(s): 5171


    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

    这是一道递归问题,首先我们要求出它的递归公式。。

    我们设向上走的步数为a[i],向左和右走的步数为b[i]。

    则a[i]=a[i-1]+b[i-1];

    b[i]=a[i-1]*2+b[i-1];(因为有左上和右上两种方向)

    化简得:

    f[i]=2*f[i-1]+f[i-2]

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int a[50];
     5 
     6 int main(){
     7     int c,n;
     8     cin>>c;
     9     while(c--){
    10         cin>>n;
    11         a[1]=3;
    12         a[2]=7;
    13         for(int i=3;i<=20;i++){
    14             a[i]=a[i-1]*2+a[i-2];
    15         }
    16         cout<<a[n]<<endl;
    17     }
    18     return 0;
    19 }
  • 相关阅读:
    mysql导sql脚本
    oracle导sql脚本
    基于jdk proxy的动态代理模式
    vue组件之组件的生命周期
    vue组件之组件间的通信
    python-爬虫scrapy框架安装及基本使用
    mongdb的使用
    python-爬虫 多线程爬虫
    python-爬虫 爬虫利器BeautifulSoup
    python-爬虫lxml库
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/6730867.html
Copyright © 2011-2022 走看看