• 洛谷 U3357 C2-走楼梯


    题目背景

    在你成功地解决了上一个问题之后,方方方不禁有些气恼,于是他在楼梯上跳来跳去,想要你求出他跳的方案数。..

    题目描述

    方方方站在一个n阶楼梯下面,他每次可以往上跳一步或两步,往下跳一步到四步(由于地心引力跳得比较远),而且在往下跳的时候你只能踩在你往上跳时踩过的格子。

    现在方方方在楼梯上乱跳,想问他跳到楼梯顶上最后又跳回楼梯下面的方案数mod 2333333。

    请注意:针对题目有歧义的情况,这里再说明一下。方方方只能一直向上跳,跳到楼梯最上面,然后再往下跳,跳回楼梯最底下。

    输入输出格式

    输入格式:

    输入一行一个数n。

    输出格式:

    输出方方方跳回楼梯下面的方案数mod 2333333。

    输入输出样例

    输入样例#1:
    5
    输出样例#1:
    52
    输入样例#2:
    7654321
    输出样例#2:
    451197
    输入样例#3:
    3
    输出样例#3:
    8

    说明

    对于30%的数据,n<=10。

    对于100%的数据,1<=n<=10^7。

    爆搜只有30 

    正解是递推  从上向下走也可以看做向上走 方案数是一样的

    设当前状态为 f[i]

    f[i] 代表第一次 向上走到i   第二次也走到i的方案数 

    第二次走1步 到i  第一次有1种走法  1 

    第二次走2步 到i  第一次有2种走法  1 1 -- 2

    第二步走3步 到i  第一次有3种走法  1 1 1-- 1 2--2 1

    第二步走4步 到i  第一次有5种走法  1 1 1 1--1 2 1--1 1 2--2 1 1--2 2

     1 #include <cctype> 
     2 #include <cstdio>
     3 
     4 typedef long long LL;
     5 
     6 const int MAXN=1e7+10;
     7 const int mod=2333333;
     8 
     9 int n;
    10 
    11 int f[MAXN];
    12 
    13 inline void read(int&x) {
    14     int f=1;register char c=getchar();
    15     for(x=0;!isdigit(c);c=='-'&&(f=-1),c=getchar());
    16     for(;isdigit(c);x=x*10+c-48,c=getchar());
    17     x=x*f;
    18 }
    19 
    20 int hh() {
    21     read(n);
    22     f[1]=1;f[2]=3;f[3]=8;f[4]=22;
    23     for(int i=5;i<=n;++i) {
    24         f[i]=f[i-1]+f[i-2]*2+f[i-3]*3+f[i-4]*5;
    25         while(f[i]>=mod) f[i]-=mod;
    26     }
    27     printf("%d
    ",f[n]);
    28     return 0;
    29 }
    30 
    31 int sb=hh();
    32 int main(int argc,char**argv) {;}
    代码


    作者:乌鸦坐飞机
    出处:http://www.cnblogs.com/whistle13326/
    新的风暴已经出现 怎么能够停止不前 穿越时空 竭尽全力 我会来到你身边 微笑面对危险 梦想成真不会遥远 鼓起勇气 坚定向前 奇迹一定会出现

     
  • 相关阅读:
    有关TSQL的10个好习惯
    jQuery操作Select
    SQL Server 高性能写入的一些总结
    如何限制文本框只能输入数字,小数点,英文,汉字等各类代码(转载)
    补码、条件跳转指令
    Windows获取进程完整路径
    NumPy库
    WS_窗口风格常量
    C语言核心技术第一章
    Ubuntu安装搜狗输入法
  • 原文地址:https://www.cnblogs.com/whistle13326/p/7485246.html
Copyright © 2020-2023  润新知