Hướng dẫn giải của HSG THPT Hải Phòng 2021 - Bài 3


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
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.

Subtask 1

Đơn giản là bạn chỉ cần duyệt tất cả các cặp ~(i, j)~ ~(1 \leq i, j \leq n, i \neq j)~ cho đến khi ~\frac{a_j + a_j}{k}~.

Độ phức tạp : ~O(n ^ 2)~

Subtask 2

Ta biến đổi ~\frac{a_j + a_j}{k}~ ~\Leftrightarrow~ ~a_i + a_j = 2 \cdot k~ ~\Leftrightarrow~ ~a_j = 2 \cdot k - a_i~

Nên ta chỉ cần duy trì mảng đánh dấu để khi xét tới ~i~ kiểm tra xem tồn tại vị trí ~j~ ~(1 <= j < i)~ mà ~a_j = 2 \cdot k - a_i~ hay không ?

Độ phức tạp : ~O(n)~

Subtask 3

Giống như subtask 2, ta chỉ thay việc sử dụng mảng bằng các CTDL như map, set...


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.