Đi trên ma trận
Đề bài
Mô tả
Trò chơi "Đi trên ma trận" diễn ra trên một bảng gồm các số nguyên không âm . Người chơi xuất phát tại ô với điểm số ban đầu bằng , và mỗi bước chỉ được đi sang phải hoặc đi xuống, tức là từ sang hoặc , miễn là không ra khỏi bảng. Mỗi khi bước vào một ô mới, điểm số hiện tại được thay bằng phép AND bit giữa điểm số đó và giá trị của ô vừa bước vào. Mục tiêu là tới ô với điểm số lớn nhất có thể.
Bob giải bài toán này bằng quy hoạch động như sau, với là điểm số tốt nhất mà thuật toán của Bob tính được cho ô :
(chỉ lấy những số hạng tương ứng với ô nằm trong bảng), rồi in ra .
Thuật toán này không đúng: có thể nhỏ hơn điểm số lớn nhất thực sự.
Cho số nguyên không âm , hãy dựng một bảng sao cho:
- ;
- với mọi , ;
- hiệu giữa điểm số lớn nhất thực sự và giá trị mà thuật toán của Bob in ra đúng bằng .
Có thể chứng minh rằng với mọi thỏa mãn luôn tồn tại một bảng như vậy. Nếu có nhiều bảng hợp lệ, in ra bảng nào cũng được.
Dữ liệu vào
Một dòng duy nhất chứa số nguyên .
Dữ liệu ra
- Dòng đầu chứa hai số nguyên và : kích thước bảng.
- dòng tiếp theo, dòng thứ chứa số nguyên .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 0 | 1 1 300000 |
Bảng : người chơi đứng yên tại ô duy nhất, điểm số lớn nhất là và thuật toán của Bob cũng in ra . Hiệu bằng . |
| 1 | 3 4 7 3 3 1 4 8 3 6 7 7 7 3 |
Điểm số lớn nhất là , trong khi thuật toán của Bob in ra . Hiệu bằng . |
Bình luận