zoukankan      html  css  js  c++  java
  • 走楼梯

    一个人走进大楼,发现自己走到了一个很长的,年久失修的楼梯面前。年久失修的意思就是,有 k 个台阶坏了,没法走。

    楼梯一共有 n 层,你一次能上一阶、两阶或三阶台阶,请问,你从楼梯底部 (0 开始) 走到楼梯顶部,共有多少种走法。

    输入格式

    输入数据共两行,第一行包含两个自然数 n (1n100) 和 k (0k<n),第二行包含 k 个自然数 Xi (1Xin),数字之间用一个空格隔开,表示损坏的台阶的序号(从楼梯底部到楼梯顶部,台阶序号依次为 1 到 n)。

    输出格式

    输出数据仅包含一个整数,表示所有可行走法的总数。

    样例

    input
    5 2
    2 4
    
    output
    2


    #include<iostream>
    #include<string.h>
    #include<cstdio>
    using namespace std;

    int n = 0,cnt= 0,* stair;

    void climb(int start)
    {
        if (start > n)
            return;
        if (stair[start] == -1)
            return;
        if (start==n)
        {
            cnt++;
            return;
        }
        climb(start + 1);
        climb(start + 2);
        climb(start + 3);
    }

    int main() {
        int k;
        cin >> n >> k;
        stair = new int[n+1];
        fill(stair, stair + n+1, 1);
        for (int i = 0; i < k; i++)
        {
            int temp = 0;
            cin >> temp;
            stair[temp] = -1;//台阶坏了
        }
        climb(0);
        cout<<cnt<<endl;
        return 0;
    }


  • 相关阅读:
    动态规划01背包
    动态规划矩阵连乘
    分治法归并排序
    动态规划最长公共子序列
    贪心算法活动安排
    分治法二分查找
    vue 可拖拽可缩放 vuedraggableresizable 组件常用总结
    rifilter in python discussed in 3delight
    3delight linear work flow
    pixar stereo rendering doc
  • 原文地址:https://www.cnblogs.com/lxzbky/p/10568015.html
Copyright © 2011-2022 走看看