Hướng dẫn giải của Hamilton Path


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hãy chia hình chữ nhật kích thước ~10^6 \times 10^6~ thành các hình chữ nhật nhỏ hơn bằng các đường thẳng dọc, tạo ra ~1,000~ hình chữ nhật kích thước ~10^3 \times 10^6~.

Đánh số chúng từ trái sang phải. Ta sẽ di chuyển qua các điểm từ hình chữ nhật này sang hình chữ nhật khác. Trong cùng một hình chữ nhật, ta sẽ đi qua các điểm theo thứ tự tăng dần của tọa độ ~y~ nếu số của hình chữ nhật đó là số chẵn, và ngược lại nếu là số lẻ.

image

Chứng minh tính đúng đắn: Tính chiều dài lớn nhất của một con đường theo cách này.

Các tọa độ là độc lập.

Theo tọa độ ~y~, đi qua ~1,000~ hình chữ nhật từ ~0~ đến ~10^6~, tổng cộng là ~10^9~ đơn vị.

Theo tọa độ ~x~, chúng ta mất ~1,000~ để đến điểm kế tiếp trong cùng một hình chữ nhật và ~2,000~ để đến hình chữ nhật tiếp theo.

Tổng cộng là ~2 \times 10^9 + 2,000,000~.

Độ phức tạp: ~O(n \times log(n))~.


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.