[Buổi 34][Tư duy quy hoạch động][WS] Bài 1: Bậc thang truyền tín hiệu
Bậc thang truyền tín hiệu
Bối cảnh và bài toán
Một bộ điều khiển có n mức tín hiệu. Từ mức 0, mỗi thao tác chỉ có thể tăng thêm 1 hoặc 2 mức. Hai chuỗi thao tác khác nhau được xem là hai phương án khác nhau.
Yêu cầu
Tính số phương án để đạt đúng mức n, lấy modulo 10^9+7.
Input
Một dòng chứa n.
Output
In số phương án modulo 10^9+7.
Ràng buộc
1 <= n <= 10^6
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 40 | n <= 100 |
01–08 |
| S2 | 60 | Không có ràng buộc bổ sung | 09–20 |
Ví dụ 1
Input
1
Output
1
Giải thích. Ví dụ nhỏ giúp kiểm tra cách mô hình hóa trạng thái và kết quả cuối; khi tự giải, cần suy luận từ ràng buộc thay vì suy đoán từ sample.
Ví dụ 2
Input
2
Output
2
Giải thích. Hãy đối chiếu với edge case: trạng thái đầu, trạng thái không đạt được, tie hoặc biên chỉ số tùy bài.
Gợi ý
Trước khi code, hãy viết rõ ý nghĩa của trạng thái, các trạng thái tiền nhiệm và thứ tự tính sao cho mọi dependency đã có giá trị.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M10-B34-WS01 |
| Buổi | B34 |
| Loại bài | WORKSHOP |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 25 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: FULLHOUSE DEV – Self-generated.
Comments