[DHBB25 - DX29 - 11] Bài 2: Xếp Lego
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Chuẩn bị sinh nhật lần thứ 9, Tí được bố mua cho bộ xếp hình Lego mới nhất. Có tất cả ~N~ miếng Lego hình hộp lập phương có kích thước giống hệt nhau, khối thứ ~i~ đánh số ~i~ trên đó. Tí đã thử một nhiệm vụ là xếp các khối để tạo thành một bức tường. Cậu ta xếp thành một bức tường trên ~K~ ô vuông ban đầu, mỗi ô có kích thước bằng một Lego. Cách xây bức tường của Tí theo quy tắc như sau:
- Đầu tiên đặt khối 1 lên một chỗ trống bất kì.
- Với mỗi khối từ 2 đến ~N~, cậu ta đặt lên một cột cạnh với cột vừa đặt khối trước đó. Nếu cột đó là trống thì khối đó sẽ là khối đầu tiên, nếu cột đó đã có các khối Lego khác ở dưới thì nó đặt lên cao nhất của cột đó.
Sau khi xếp hết ~N~ khối Lego thì Tí viết ra giấy ~K~ số là chỉ số các khối Lego trên cao nhất, nếu cột nào chưa được xếp khối Lego vào thì nó là 0. Nhưng lưu ý là các khối phải xếp vào cột bên cạnh của khối ngay trước đó.
Yêu cầu: Tính số cách xếp khác nhau khi Tí viết ~K~ số trên cùng ra giấy. Do kết quả có thể rất lớn, nên hãy in ra đáp số sau khi đã chia dư cho ~10^9 + 7~.
Input
- Một dòng chỉ gồm hai số ~N, K~ là số khối Lego và số ô để xếp (~2 \le N, K \le 5000~).
Output
- Số cách xếp khác nhau thỏa mãn yêu cầu, lấy dư cho ~10^9 + 7~.
Sample Input 1
4 3
Sample Output 1
8
Bình luận