B. 上台阶

    传统题 文件IO:t2 1000ms 256MiB

上台阶

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

T2. 上台阶

属性
内存限制 256 MiB
时间限制 1000 ms

题目描述

小明每天上学都要走一段台阶。这段台阶共有 NN 级(从第 00 级地面开始,到第 NN 级平台结束)。

小明一步可以跨 11 级台阶,也可以一步跨 22 级台阶。但是,最近台阶在维修,有 MM 级台阶因为破损被封锁了,不能踩上去(第 00 级和第 NN 级一定是完好的)。

小明想从第 00 级(地面)出发,走到第 NN 级(平台)。他想知道,一共有多少种不同的走法

由于答案可能很大,请输出答案对 109+710^9 + 7(即 10000000071000000007)取模的结果。

输入格式

第一行两个整数 N,MN, M,分别表示台阶总级数和破损台阶的数量。

第二行 MM 个整数 b1,b2,,bMb_1, b_2, \dots, b_M,表示破损台阶的编号(1biN11 \le b_i \le N-1)。保证 bib_i 互不相同且按升序给出。

输出格式

输出一行一个整数,表示方案数对 109+710^9 + 7 取模的结果。

样例

样例 #1

输入样例(t2.in)

4 0

M=0M=0 时第二行为空行)

输出样例(t2.out)

5

解释44 级台阶,没有破损。从 00 走到 44,每次 1122 级:

  • 012340 \to 1 \to 2 \to 3 \to 4
  • 01240 \to 1 \to 2 \to 4
  • 01340 \to 1 \to 3 \to 4
  • 02340 \to 2 \to 3 \to 4
  • 0240 \to 2 \to 4

55 种。

样例 #2

输入样例

5 1
2

输出样例

2

解释:第 22 级破损不能踩。从 0055 的方案:

  • 013450 \to 1 \to 3 \to 4 \to 5
  • 01350 \to 1 \to 3 \to 5

22 种。(注意 020 \to 2 \to \dots 不可行,因为 22 是破损台阶)

样例 #3

输入样例

6 2
2 4

输出样例

1

解释:只有 013560 \to 1 \to 3 \to 5 \to 6 这一种走法。

数据范围与提示

测试点编号 NN \le MM \le 特殊约定
131 \sim 3 2020 00 无破损台阶
464 \sim 6 10001000 1010 无特殊约定
7107 \sim 10 10510^5 100100

对于 100%100\% 的数据,1N1051 \le N \le 10^50Mmin(N1,100)0 \le M \le \min(N-1, 100)1biN11 \le b_i \le N-1bib_i 严格递增。

24KOI 2026 体验赛 No.01

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-6-20 11:30
结束于
2026-6-20 15:00
持续时间
3.5 小时
主持人
参赛人数
17