Editorial for Phân chia dãy số
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Nguồn: CSES
Xây dựng một hàm check(s) nhận vào một giá trị và kiểm tra xem có thể chia mảng thành
mảng con sao cho tổng của mỗi mảng con không vượt quá
hay không. Hàm duyệt mảng từ trái sang phải và tham lam chọn kích thước lớn nhất có thể cho mỗi mảng con.
Ta có thể giải bài toán một cách hiệu quả bằng cách kết hợp tìm kiếm nhị phân với hàm trên. Ta tìm giá trị lớn nhất sao cho không thể chia mảng thành các mảng con thỏa mãn điều kiện. Khi đó, đáp án của bài toán là
.
Thuật toán có độ phức tạp , trong đó
là đáp án lớn nhất có thể.
Comments