蓝桥杯破损的楼梯

状态转移方程

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();
   }
}
相关推荐
重庆小透明23 分钟前
【搞定面试之mysql】第一篇:mysql的优化和索引
mysql·面试·职场和发展
爱丽_1 小时前
ThreadLocal 机制:弱引用 Entry、内存泄漏、线程池复用与线上排查
java·jvm·算法
2301_815482931 小时前
C++编译期矩阵运算
开发语言·c++·算法
☆5661 小时前
C++中的类型擦除技术
开发语言·c++·算法
m0_569881471 小时前
C++与自动驾驶系统
开发语言·c++·算法
2401_833197731 小时前
C++代码切片分析
开发语言·c++·算法
月落归舟1 小时前
每日算法题 14---14.环形链表
数据结构·算法·链表
m0_621438521 小时前
实时音频处理C++实现
开发语言·c++·算法
weixin_421922692 小时前
模板代码性能测试
开发语言·c++·算法
Liu628882 小时前
C++中的模板方法模式
开发语言·c++·算法