Mã vạch
Đề bài
Mô tả
Cho một bức ảnh gồm điểm ảnh, mỗi điểm ảnh có màu trắng hoặc đen.
Bạn cần đổi màu một số điểm ảnh (càng ít càng tốt) để bức ảnh trở thành một mã vạch. Bức ảnh là mã vạch nếu thỏa mãn đồng thời hai điều kiện:
- Mọi điểm ảnh trong cùng một cột có cùng màu.
- Nếu gộp các cột liên tiếp có cùng màu thành từng nhóm, thì mỗi nhóm phải có độ rộng ít nhất cột và nhiều nhất cột.
Hãy tìm số điểm ảnh ít nhất cần đổi màu. Dữ liệu đảm bảo luôn tồn tại đáp án.
Dữ liệu vào
- Dòng đầu chứa bốn số nguyên , , , .
- dòng tiếp theo, mỗi dòng gồm đúng ký tự mô tả bức ảnh ban đầu: ký tự
.là điểm ảnh trắng, ký tự#là điểm ảnh đen.
Dữ liệu ra
Một số nguyên duy nhất: số điểm ảnh ít nhất cần đổi màu.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 5 1 2 ##.#. .###. ###.. #...# .##.# ###.. |
11 | Một cách tối ưu là biến mọi dòng thành .##.. (nhóm rộng 1, 2, 2 cột), tốn 11 lần đổi màu. |
| 2 5 1 1 ##### ..... |
5 | Vì nên mọi nhóm rộng đúng 1 cột, tức là các cột phải xen kẽ màu. Một cách tối ưu là biến mọi dòng thành .#.#. |
Bình luận