Bỏ qua đến nội dung

Hướng giải: Chênh lệch nhỏ nhất

Chênh lệch nhỏ nhất

Mã bài: binarysearch02 Nhóm: Uncategorized Điểm: 1.000 điểm
Giới hạn
1,0 s, 256 MB
Tỉ lệ AC
21,1%
Người giải
15
Chỉ đọc hướng giải khi bế tắc và đừng sao chép mã trong đó. Hãy tôn trọng người ra đề và người viết hướng giải: nộp lời giải chính thức khi chưa tự giải được bài có thể khiến bạn bị khóa tài khoản.

Tiến hành sắp xếp mảng a tăng dần. Với mỗi truy vấn, tìm chỉ số nhỏ nhất thỏa mãn giá trị phần tử lớn hơn hoặc bằng x thông qua Tìm kiếm nhị phân (có thể sử dụng hàm lower_bound), gọi chỉ số đó là i. Khi đó, chỉ số lớn nhất thỏa mãn giá trị phần tử nhỏ hơn x là i-1.

Đáp án bài toán là độ chênh lệch giữa x với một trong hai phần tử tại chỉ số i hoặc i-1. answer=min\{|x-a_i|,|x-a_{i-1}|\}.

Độ phức tạp: O(n.log(n)+q.log(n)).

Bình luận