Hướng dẫn giải của Thi thử HSG9 2026 - Ngày 3 - Định lý bốn điểm


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.

Tác giả: hunglvh

Nhận xét: Đề bài đã cho sẵn công thức kiểm tra hai đường thẳng ~AB~ và ~CD~ vuông góc là ~AC^2 - AD^2 = BC^2 - BD^2~.

Ý tưởng: Vì giới hạn ~n \le 200~ khá nhỏ, cách đơn giản nhất là duyệt trâu qua tất cả các bộ ~4~ điểm ~A, B, C, D~ để tạo thành ~2~ đường thẳng.

Sau khi đã chốt được ~4~ điểm, dùng thẳng công thức đề cho vào. Nếu thỏa mãn thì tăng biến đếm kết quả. Tuy nhiên, để tối ưu và tránh bị TLE, ta sẽ dùng một mảng ~2~ chiều ~d~ tính sẵn bình phương khoảng cách giữa mọi cặp điểm từ trước. Khi vào vòng lặp kiểm tra, chỉ việc lôi mảng đó ra dùng (truy xuất mất ~\mathcal{O}(1)~).

Độ phức tạp: Thuật toán cần ~4~ vòng lặp lồng nhau nên độ phức tạp là ~\mathcal{O}(n^4)~. Với ~n \le 200~, do ta chỉ duyệt các cặp đường thẳng không trùng lặp nên số lần chạy thực tế chia ra chỉ khoảng ~\frac{n^4}{8} \approx 2 \times 10^8~.


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.