蓝桥杯破损的楼梯

状态转移方程

dp[i] = dp[i-1] + dp[i-2]

前提是dp[i-1]不是-1,dp[i-2]不是-1

代码

java 复制代码
import java.util.Scanner;

public class Main{

   public static void main(String[] args) {
       Scanner s = new Scanner(System.in);
       long mod = (long)1e9+7;
       long[] dp = new long[100010];
       int N = s.nextInt();
       int M = s.nextInt();
       for(int i=0;i<M;i++)
           dp[s.nextInt()]=-1;
       dp[0]=1;
       for(int i=1;i<=N;i++){
           if(dp[i]==-1)
               continue;
           if(i>=1 && dp[i-1]!=-1)
               dp[i] = (dp[i]+dp[i-1])%mod;
           if(i>=2 && dp[i-2]!=-1)
               dp[i] = (dp[i]+dp[i-2])%mod;

       }
       if(dp[N]==-1)//这个测试点很无语
         System.out.println(0);
       else
         System.out.println(dp[N]);
       s.close();
   }
}
相关推荐
Q741_1471 小时前
每日一题 力扣 1848. 到目标元素的最小距离 模拟 C++题解
c++·算法·leetcode·模拟
VkN2X2X4b2 小时前
算法性能的渐近与非渐近行为对比的技术9
算法
好家伙VCC2 小时前
**神经编码新视角:用Python实现生物启发的神经信号压缩与解码算法**在人工智能飞速发展的今天
java·人工智能·python·算法
W23035765739 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
.Ashy.9 小时前
2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记
c语言·c++·蓝桥杯
minji...10 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
语戚11 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
skywalker_1111 小时前
力扣hot100-7(接雨水),8(无重复字符的最长子串)
算法·leetcode·职场和发展
bIo7lyA8v12 小时前
算法稳定性分析中的输入扰动建模的技术9
算法