Bỏ qua đến nội dung

Hướng giải: Nhà máy

Nhà máy

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

Ta thiết kế một hàm Check(x) để duyệt qua các máy và tính tổng số sản phẩm mà chúng có thể sản xuất trong x đơn vị thời gian. Hàm trả về true nếu số sản phẩm sản xuất được lớn hơn hoặc bằng số sản phẩm yêu cầu.

Ta có thể giải bài toán một cách hiệu quả bằng tìm kiếm nhị phân và gọi hàm trên. Ta tìm thời gian lớn nhất k sao cho không thể sản xuất đủ số lượng sản phẩm yêu cầu. Khi đó, k + 1 chính là đáp án của bài toán.

Thuật toán có độ phức tạp O(n.log(M)), trong đó M=10^{18} là đáp án lớn nhất có thể.

Bình luận