Nhảy lò cò

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Kỳ thi chọn đội tuyển Olympic 2018
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Nhảy lò cò là một trò chơi dân gian Việt Nam. Thuở bé Lan rất thích chơi trò này. Vì vậy, khi được học môn "Phân tích và thiết kế thuật toán", Lan đã đặt ra một bài toán khá thú vị liên quan tới trò chơi này. Trên mặt phẳng vẽ ~n~ vòng tròn. Các vòng tròn này lại được xếp trên một vòng tròn lớn và được đánh số từ từ ~1~ đến ~n~ theo chiều đi vòng quanh vòng tròn lớn thuận chiều kim đồng hồ. Hai vòng tròn nhỏ liên tiếp nhau theo một chiều đi vòng quanh vòng tròn lớn được gọi là ở bên cạnh nhau.

image

Hình 1. Trò chơi lò cò trên vòng tròn (~n=3~)

Người chơi bắt đầu từ vòng tròn đánh số ~1~, mỗi bước nhảy người chơi sẽ di chuyển sang một trong hai vòng tròn bên cạnh. Hãy giúp Lan giải quyết bài toán sau: Đếm xem có bao nhiêu cách khác nhau thực hiện ~k~ bước nhảy bắt đầu từ vòng tròn ~1~ rồi lại quay về vòng tròn ~1~.

Input

Một dòng chứa hai số nguyên dương ~n~ và ~k~ (~3\le n\le 4000, 1\le k \le 10^6~) — số lượng vòng tròn và số lượng bước nhảy.

Output

Một số nguyên là phần dư trong phép chia số lượng cách nhảy tìm được cho ~10^9+7~.

Scoring

Subtask Điểm Giới hạn
1 ~10~ ~n \le 200~
2 ~30~ ~k \le 10^4~
3 ~60~ Không có ràng buộc gì thêm

Sample Input 1

3 2

Sample Output 1

2

Bình luận

Hãy đọc nội quy trước khi bình luận.


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