#00 - Bài 5 - Nhảy 2

Xem PDF

Điểm: 1 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Lại tiếp tục cho một dãy gồm \(n+1\) ô xếp liên tiếp nhau từ ô \(0\) tới ô \(n\); trong đó có \(k\) ô \(A_1, A_2, \dots, A_k\) ta không thể bước chân vào (ô bị chặn).
Bạn ban đầu đứng ở ô \(0\), và bạn phải tìm cách di chuyển tới ô \(n\) bằng cách nhảy 1 ô hoặc nhảy 2 ô.
Cụ thể, nếu bạn đang ở ô \(i\), thì bạn có thể nhảy sang một trong hai ô \(i+1\) hoặc \(i+2\), miễn là nơi bạn nhảy tới không phải là ô bị chặn và vẫn chưa nằm ngoài \(n+1\) ô.

Hãy đếm số cách di chuyển từ ô \(0\) tới ô \(n\).

Dữ liệu đầu vào

  • Dòng thứ nhất chứa hai số lần lượt là \(n\)\(k\) \((0 \leq k \leq n \leq 10^5)\).
  • Dòng thứ hai chứa \(k\) số \(A_1, A_2, \dots, A_k\) \((1 \leq A_i \leq n)\).

Định dạng đầu ra

  • In ra một số duy nhất là số lượng cách nhảy từ ô \(0\) tới ô \(n\), chia lấy dư cho \(998244353\).

Điểm số

  • Subtask \(1\) (\(30\%\) số điểm): \(n \leq 20\)
  • Subtask \(2\) (\(25\%\) số điểm): \(k = 0\)
  • Subtask \(3\) (\(45\%\) số điểm): không có giới hạn nào khác.

Ví dụ

Ví dụ 1

Đầu vào
7 2
1 6
Đầu ra
3
Giải thích

Có ba cách di chuyển:

  • \(0 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 5 \rightarrow 7\)
  • \(0 \rightarrow 2 \rightarrow 3 \rightarrow 5 \rightarrow 7\)
  • \(0 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 7\)

Bình luận

Không có bình luận nào.