[Buổi 10][Đệ quy & Ngăn xếp lời gọi][HW] Bài 3: Bit thứ k trong tín hiệu phản chiếu
Bit thứ k trong tín hiệu phản chiếu
Bối cảnh và bài toán
Một thiết bị tạo tín hiệu nhị phân theo quy tắc: S1 = "0"; với n>1, Sn = S(n-1) + "1" + invert(reverse(S(n-1))). Chuỗi có thể dài tới hơn 10^18 ký tự nên không thể dựng trực tiếp. Thiết bị chỉ cần biết ký tự thứ k (đánh số từ 1).
Yêu cầu
Xác định bit thứ k của Sn mà không dựng toàn bộ chuỗi.
Input
- Một dòng chứa
n k.
Output
In 0 hoặc 1.
Ràng buộc
1 <= n <= 601 <= k <= 2^n - 1
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n ≤ 20 | 01–04 |
| S2 | 30% | n ≤ 40 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
3 5
Output
0
Giải thích. S3 = 0111001, ký tự thứ 5 là 0.
Ví dụ 2
Input
4 8
Output
1
Giải thích. Vị trí giữa của S4 là ký tự 1 được chèn ở bước xây dựng.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M04-B10-HW03 |
| Buổi | B10 |
| Loại bài | HOMEWORK |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 40 phút |
| Time limit | 1 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