trang chủ / đề bài / shaaslight

Bật đèn

Đề bài

Mô tả

Có n bóng đèn xếp thành một hàng, đánh số từ 1 đến n từ trái sang phải. Ban đầu có đúng m bóng đang sáng, các bóng còn lại đều tắt.

Bạn muốn bật sáng tất cả các bóng đèn. Ở mỗi bước, bạn được phép bật một bóng đèn đang tắt, với điều kiện ít nhất một trong hai bóng kề nó (bóng bên trái hoặc bóng bên phải) đang sáng tại thời điểm đó.

Mỗi cách bật đèn được xác định bởi thứ tự các bóng được bật lên. Hai cách được coi là khác nhau nếu dãy thứ tự bật khác nhau.

Hãy đếm số cách khác nhau để bật sáng toàn bộ n bóng đèn, lấy phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m -- số bóng đèn và số bóng đang sáng ban đầu.
  • Dòng thứ hai chứa m số nguyên đôi một phân biệt, là chỉ số của các bóng đang sáng. Các số này không đảm bảo được cho theo thứ tự tăng dần.

Dữ liệu ra

In ra một số nguyên duy nhất: số cách bật sáng toàn bộ các bóng đèn, lấy phần dư cho 109+7.

Ràng buộc

  • 1≤n≤1000
  • 1≤m≤n
  • Các chỉ số bóng sáng nằm trong [1,n] và đôi một phân biệt.

Ví dụ

Input Output Giải thích
3 1
1
1 Chỉ bóng 1 sáng. Bóng 3 chưa thể bật vì bóng 2 đang tắt, nên bắt buộc bật 2 rồi mới tới 3. Đúng 1 cách.
4 2
1 4
2 Hai bóng tắt là 2 và 3, mỗi bóng đều đã có một hàng xóm đang sáng. Có thể bật theo thứ tự 2,3 hoặc 3,2.
11 2
4 8
6720 Ba đoạn tắt: [1..3], [5..7], [9..11]. Hai đoạn ở hai biên chỉ có duy nhất một thứ tự bật, còn đoạn giữa có 4 thứ tự; kết hợp với việc trộn xen kẽ ba đoạn được 6720 cách.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0