Chọn ĐTQG Quảng Ninh 2025 - Tia
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Trên mặt phẳng tọa độ ~(Oxy)~ định hướng (quay theo chiều kim đồng hồ là chiều âm, quay ngược chiều kim đồng hồ chiều dương), góc giữa hai tia ~Ox, At~ được định nghĩa là một góc lượng giác ~\theta~ ~(\theta \in [-\pi;\pi))~, ~\theta = \mathrm{sđ}(Ox,Ou)~, với ~Ou~ là tia cùng phương và cùng hướng với tia ~At~. Khi đó, mỗi tia ~At~ hoàn toàn được xác định bởi điểm đầu ~A(x_A;y_A)~ và góc ~\theta~ tạo bởi giữa tia ~At~ và tia ~Ox~.
Đoạn thẳng ~AB~ được gọi là không cắt tia ~Ou~ nếu đoạn ~AB~ hoặc không có điểm chung với tia ~Ou~ hoặc ~O~ là điểm chung duy nhất của đoạn ~AB~ với tia ~Ou~.
Cho ~n~ tia trên mặt phẳng tọa độ ~(Oxy)~ và điểm ~M_0(p;q)~. Một đường đi gấp khúc từ điểm ~O(0;0)~ qua các điểm ~A_1, A_2, \dots, A_k~ đến điểm ~M_0~ được gọi là "an toàn" nếu đồng thời thỏa mãn các điều kiện sau:
Hoành độ của điểm trước luôn không lớn hơn hoành độ của điểm sau;
Đoạn thẳng nối hai điểm liên tiếp trên đường đi không cắt vào bất kì một tia nào trong ~n~ tia đã cho.
Yêu cầu: Hãy tìm đường đi gấp khúc từ điểm ~O(0;0)~ đến điểm ~M_0(p;q)~ "an toàn" và có độ dài ngắn nhất.
Input
Dòng đầu ghi ba số nguyên ~n, p, q~ ~(1 \le n \le 10^5; 0 \le p, |q| \le 10^6)~ lần lượt là số tia trên mặt phẳng và tọa độ của điểm ~M_0~;
~n~ dòng tiếp theo mỗi dòng ghi ba số ~x, y, \theta~ ~(x, y \in \mathbb{Z}; 0 \le |x|, |y| \le 10^9; \theta \in [-\pi;\pi))~. Trong đó, ~(x;y)~ là tọa độ điểm đầu của tia, ~\theta~ là góc tạo bởi tia đó và tia ~Ox~.
Dữ liệu đầu vào đảm bảo luôn tồn tại đường đi "an toàn" từ điểm ~O~ đến điểm ~M_0~.
Các số trên một dòng được ghi cách nhau một dấu cách.
Output
Kết quả của bài toán là độ dài đường gấp khúc "an toàn" ngắn nhất từ điểm ~O(0;0)~ đến điểm ~M_0(p;q)~. Kết quả của bạn được xem là đúng nếu có sai số tuyệt đối không vượt quá ~1.0~. Tức là ~|a-\bar{a}| \le 1.0~, trong đó ~a~ là đáp án của bạn, ~\bar{a}~ là đáp án chuẩn.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~40\%~ | ~n \le 300~ |
| 2 | ~40\%~ | Trong các tia có đúng hai tia có góc ~\theta = -1.571~, các tia còn lại có ~\theta = 1.571~ |
| 3 | ~20\%~ | Không có ràng buộc gì thêm |
Sample Input 1
7 20 -5
4 3 -2.875
5 7 -1.314
10 -2 0.666
16 1 -1.571
16 1 1.571
23 -3 -2.130
14 -5 3.073
Sample Output 1
33.33804225
Sample Input 2
7 20 0
5 2 1.155
5 2 1.987
5 2 -1.571
11 -4 1.765
11 -4 1.377
15 -4 1.765
15 -4 1.377
Sample Output 2
24.27357042
Notes
Gọi các tia theo dữ liệu vào lần lượt là ~d_1, d_2, d_3, d_4, d_5, d_6, d_7~ và ~M_0(20;-5)~.
Tia ~d_1~ có điểm đầu là ~(4;3)~, góc ~\theta = -2.875 \in (-\pi;-\frac{\pi}{2})~ nên điểm đầu nằm phía trên trục ~Ox~, có hướng quay xuống và từ phải qua trái. Tia ~d_3~ có điểm đầu là ~(10;-2)~ nên nằm phía dưới trục ~Ox~, góc ~\theta = 0.666 \in (0;\frac{\pi}{2})~ nên hướng lên và từ trái qua phải.
Đường đi tối ưu là đường đi gấp khúc được thể hiện bằng các đường nét đứt trong hình minh họa của đề.
Bình luận