蓝桥杯-python-破损的楼梯(dp)

问题描述

小蓝来到了一座高耸的楼梯前,楼梯共有 N 级台阶,从第 0 级台阶出发。小蓝每次可以迈上上级或2级台阶,但是,楼梯上的第 a1级、第a2 级、第 a3 级,以此类推,共 级台阶的台阶面已经坏了,不能踩上去。

现在,小蓝想要到达楼梯的顶端,也就是第 N 级台阶,但他不能踩到坏了的台阶上,请问他有多少种不踩坏了的台阶到达顶端的方案数?

由于方案数很大,请输出其对 109+7取模的结果。

输入格式

第一行包含两个正整数 N(1≤ N≤ 10°)和 M(0≤ M≤N),表示楼梯的总级数和坏了的台阶数。
接下来一行,包含 M 个正整数 a」,Q2,·..,am(1 ≤ al < a2 <a3 < aM ≤ N),表示坏掉的台阶的编号

输出格式

输出一个整数,表示小蓝到达楼梯顶端的方案数,对109+7取模。

python 复制代码
n,M=map(int,input().split())
Bad=list(map(int,input().split()))
dp = [0]*(n+1)
vis = [0]*(n+1)

for x in Bad:
   vis[x]=1


dp[0]=1
dp[1]=1-vis[1]

for i in range(2,n+1):
    if vis[1] == 1:
        continue
    dp[i]=(dp[i-1]+dp[i-2])%1000000007
print(dp[n])

#仅供本人知识归纳

相关推荐
灰灰老师17 分钟前
数据分析系列--[11] RapidMiner,K-Means聚类分析(含数据集)
人工智能·算法·机器学习·数据挖掘·数据分析·kmeans·rapidminer
追求源于热爱!1 小时前
记4(可训练对象+自动求导机制+波士顿房价回归预测
图像处理·人工智能·算法·机器学习·回归
比特在路上1 小时前
蓝桥杯之c++入门(四)【循环】
c++·职场和发展·蓝桥杯
qq_433618441 小时前
哈夫曼树
数据结构·算法
余辉zmh2 小时前
【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(二)
c++·算法·leetcode·贪心算法
余辉zmh2 小时前
【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(一)
c++·算法·leetcode·贪心算法
taoyong0012 小时前
代码随想录算法训练营第三十七天-动态规划-完全背包-377. 组合总和 Ⅳ
c++·算法·leetcode·动态规划
励志成为美貌才华为一体的女子2 小时前
python算法和数据结构刷题[4]:查找算法和排序算法
数据结构·算法·排序算法
tt5555555555553 小时前
每日一题-判断是不是完全二叉树
数据结构·算法
君义_noip4 小时前
信息学奥赛一本通 1607:【 例 2】任务安排 2 | 洛谷 P10979 任务安排 2
算法·动态规划·信息学奥赛·斜率优化