蓝桥杯破损的楼梯

状态转移方程

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();
   }
}
相关推荐
MATLAB代码顾问16 分钟前
多种群协同进化算法(MPCE)求解大规模作业车间调度问题——附MATLAB代码
开发语言·算法·matlab
FQNmxDG4S20 分钟前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法
We་ct39 分钟前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·leetcode·typescript·动态规划
AI科技星40 分钟前
精细结构常数α作为SI 7大基本量纲统一耦合常数的量子几何涌现理论
算法·机器学习·数学建模·数据挖掘·量子计算
txzrxz1 小时前
动态规划——背包问题
算法·动态规划
Yingye Zhu(HPXXZYY)2 小时前
洛谷 P15553 [CCPC 2025 哈尔滨站] 液压机
算法
谭欣辰2 小时前
LCS(最长公共子序列)详解
开发语言·c++·算法
m0_629494732 小时前
LeetCode 热题 100-----17.缺失的第一个正数
数据结构·算法·leetcode
Cando学算法2 小时前
鸽笼原理(抽屉原理)
c++·算法·学习方法
Tisfy2 小时前
LeetCode 0796.旋转字符串:暴力模拟
算法·leetcode·题解·模拟·字符串匹配