Bỏ qua đến nội dung

Hướng giải: Tổng bộ ba

Tổng bộ ba

Mã bài: twopointers06 Nhóm: Uncategorized Điểm: 100 điểm
Giới hạn
1,0 s, 256 MB
Tỉ lệ AC
9,3%
Người giải
5
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.

Nguồn: CSES

Giả sử ta biết giá trị ở vị trí ngoài cùng bên trái trong tổng là a_i. Khi đó, bài toán còn lại là tìm hai giá trị khác nhau trong đoạn con a_{i+1}...a_n có tổng bằng x - a_i. Đây là một bài toán đơn giản hơn.

Dựa trên ý tưởng này, ta có thể duyệt qua tất cả các cách có thể chọn a_i và giải bài toán còn lại. Tuy nhiên, trước tiên ta sắp xếp mảng để có thể giải bài toán tìm hai giá trị có tổng bằng một giá trị cho trước trong O(n) bằng kỹ thuật hai con trỏ (two pointers).

Do đó, thuật toán thu được có độ phức tạp O(n^2).

Bình luận