Sơn tường I

BÀI TOÁN: TÔ MÀU BỨC TƯỜNG

Nội dung bài toán

Cho một bức tường có chiều dài n, ban đầu được sơn toàn bộ màu trắng. Bạn có k chiếc chổi sơn màu đỏ. Mỗi chiếc chổi chỉ được sử dụng một lần, nhưng có thể sơn một đoạn liên tiếp với độ dài bất kỳ.

Bạn cần sơn bức tường sao cho nó có màu sắc giống với mảng nhị phân color, trong đó:
  • color[i] = 1 nghĩa là ô tường thứ i cần được sơn màu đỏ.
  • color[i] = 0 nghĩa là ô tường thứ i cần giữ nguyên màu trắng.
Hãy tìm số lượng ô sai màu tối thiểu sau khi sử dụng k chiếc chổi sơn một cách tối ưu.

Đầu vào

Dòng đầu tiên chứa hai số nguyên n và k (1 ≤ k ≤ n ≤ 1000) — chiều dài của bức tường và số lượng chổi sơn.
Dòng thứ hai chứa n số nguyên color[i] (0 hoặc 1) mô tả màu mong muốn của từng ô trên bức tường.

Đầu ra

Một số nguyên duy nhất là số ô sai màu tối thiểu sau khi sơn với k chiếc chổi.

Ràng buộc

1 ≤ k ≤ n ≤ 1000
color[i] chỉ nhận giá trị 0 hoặc 1

Ví dụ minh họa

Ví dụ 1

Input
6 2 1 0 1 0 1 0
Output
0

Giải thích:

Có thể dùng chổi thứ nhất sơn đoạn [0, 0] và [2, 2], chổi thứ hai sơn [4, 4].
Màu sắc sau khi sơn hoàn toàn khớp với yêu cầu, số ô sai màu là 0.

Ví dụ 2

Input
5 1 1 1 1 0 0
Output
1

Giải thích:

Chỉ có 1 chổi, có thể sơn [0, 2] để đạt được color[0] = 1, color[1] = 1, color[2] = 1.
Không thể sửa được color[3] nếu nó sai màu, do đó số ô sai màu tối thiểu là 1.

Nhận xét

Bài đăng phổ biến từ blog này

Chứng minh công thức nhị thức Newton.

Lý 11, bài 11

Giải toán cho Trang