[Buổi 14][Chuyên đề Tham lam & chiến lược tìm kiếm][ADV] Bài 1: Khoảng cách gần nhất giữa các điểm
Khoảng cách gần nhất giữa các điểm
Bối cảnh và bài toán
Có n trạm trên mặt phẳng với tọa độ nguyên, đôi một khác nhau. Cần tìm hai trạm gần nhau nhất; để tránh số thực, hệ thống yêu cầu bình phương khoảng cách Euclid.
Yêu cầu
Tìm giá trị nhỏ nhất (x1-x2)^2 + (y1-y2)^2 giữa hai điểm khác nhau.
Input
- Dòng 1:
n. ndòng tiếp:x y.
Output
In bình phương khoảng cách nhỏ nhất.
Ràng buộc
2 <= n <= 2 * 10^5-10^9 <= x, y <= 10^9
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n ≤ 2 * 10^3 | 01–04 |
| S2 | 30% | n ≤ 2 * 10^4 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
4
2 1
4 4
1 2
6 3
Output
2
Giải thích. Hai điểm (2,1) và (1,2) có bình phương khoảng cách 1^2+(-1)^2=2.
Ví dụ 2
Input
2
-999999999 -999999999
999999999 999999999
Output
7999999984000000008
Giải thích. Chỉ có một cặp; phải dùng số nguyên 64-bit và trung gian rộng để tránh overflow khi bình phương.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M04-B14-ADV01 |
| Buổi | B14 |
| Loại bài | ADVANCED |
| Mức độ khó | Khó (Hard) |
| Thời gian làm bài khuyến nghị | 100 phút |
| Time limit | 4 giây |
| Memory limit | 512 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
| Yêu cầu bổ sung | Decision Note |
Nguồn: Phỏng theo CSES Problem Set — Minimum Euclidean Distance (Task 2194).
Tham khảo: https://cses.fi/problemset/task/2194/
Comments