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