Duong thang - Li Chao Tree co ban
Xem dưới dạng PDF
Gửi bài giải
Điểm:
100
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Cho tập hợp các đường thẳng có dạng \(y = a \cdot x + b\). Bạn cần hỗ trợ hai loại truy vấn:
- Loại 1: Thêm một đường thẳng \(y = a \cdot x + b\) vào tập hợp.
- Loại 2: Với một giá trị \(x_0\), tìm giá trị \(y = \min(a \cdot x_0 + b)\) trên tất cả các đường thẳng hiện có.
Định dạng đầu vào
- Dòng đầu chứa số lượng truy vấn \(Q\) (\(1 \le Q \le 10^5\)).
- \(Q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn:
1 a b: Thêm đường thẳng \(y = a \cdot x + b\).2 x: Truy vấn giá trị nhỏ nhất tại điểm \(x\).
Định dạng đầu ra
- Với mỗi truy vấn loại 2, in ra giá trị nhỏ nhất trên một dòng.
Ví dụ
Input:
4
1 2 3
1 -1 5
2 2
2 0
Output:
3
3
Giải thích: Tại \(x=2\): \(2(2)+3 = 7\), \(-1(2)+5 = 3 \implies \min = 3\). Tại \(x=0\): \(2(0)+3 = 3, -1(0)+5 = 5 \implies \min = 3\).
Ràng buộc & Subtasks
| Subtask | Điểm | Ràng buộc | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | 30 | \(Q \le 1000\) | ||||||
| 2 | 70 | $Q \le 10^5, $ | a | , | b | , $ | x | \le 10^9$ |
Nhận xét