Hướng dẫn cho Google Code Jam 2011 - Bot Trust
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Phân tích: Bot Trust
"BAM! Các rô-bốt đã cho chúng ta thêm 6 giây hợp tác. Làm tốt lắm, các rô-bốt!"
-- Cave Johnson (Portal 2)
Hy vọng các rô-bốt của bạn tập trung vào tinh thần đồng đội hơn là của Cave Johnson, nếu không bạn sẽ không bao giờ nhấn được hết các nút. Hãy vui mừng vì không có các tấm gai nghiền hay khoai tây nào để đối phó! Có lẽ trong vòng chung kết...
Dù sao, nếu bạn suy nghĩ về vấn đề này từ góc độ của một rô-bốt đơn lẻ, chiến lược sẽ khá trực quan: luôn di chuyển về phía nút tiếp theo của mình và sau đó nhấn nó ngay khi đến lượt trong dãy yêu cầu.
Vì vậy, giải pháp tự nhiên nhất cho bài toán này là mô phỏng trực tiếp:
- Theo dõi xem những nút nào đã được nhấn, và nhìn trước trong dãy để tìm ra nút tiếp theo cho mỗi rô-bốt.
- Mỗi giây trôi qua, cho mỗi rô-bốt di chuyển về phía nút tiếp theo của nó.
- Khi một rô-bốt đến được nút của mình, nó nên nhấn nút nếu đó là nút tiếp theo trong dãy tổng quát, và chỉ đứng chờ nếu ngược lại.
Có tối đa 100 nút cần nhấn và khoảng cách giữa các nút tối đa là 100, vì vậy giải pháp này sẽ chạy rất nhanh.
Nếu bạn gặp khó khăn trong việc cài đặt, hãy nhớ rằng bạn có thể xem mã nguồn của các thí sinh khác. Không có cách nào học tốt hơn thế!
Dựa trên phân tích chính thức của Google Code Jam.
Bình luận