Khối nhị phân
Đề bài
Mô tả
Cho một bức ảnh nhị phân kích thước — mỗi ô là hoặc . Bạn muốn nén bức ảnh theo cách sau:
- Chọn một số nguyên .
- Nếu hoặc không chia hết cho , thêm các hàng ở phía dưới và các cột ở phía bên phải sao cho cả hai chiều mới đều chia hết cho .
- Chia bức ảnh sau khi đệm thành các khối có kích thước . Mỗi khối phải có tất cả các ô bằng nhau (cùng hoặc cùng ).
Sau khi đệm, bạn được phép đảo (toggle) một số ô — biến thành hoặc ngược lại — để mọi khối đều thuần nhất. Hãy chọn và cách đảo sao cho tổng số ô bị đảo là nhỏ nhất.
Lưu ý: việc đệm các ô không tính là phép đảo. Chỉ các ô bị thay đổi giá trị trong bức ảnh đã đệm (so với trạng thái ngay sau khi đệm) mới được tính.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, mỗi dòng là một xâu nhị phân độ dài mô tả bức ảnh.
Dữ liệu ra
- In ra một số nguyên duy nhất là số ô tối thiểu cần đảo.
Ràng buộc
- .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 5 00100 10110 11001 |
5 | Chọn . Đệm thành lưới (thêm một hàng và một cột ). Đảo ô trong lưới đã đệm để mọi khối đều thuần nhất. |
| 3 5 00110 00110 01000 |
1 | Chọn . Đệm thành lưới . Chỉ cần đảo ô là mọi khối đều thuần nhất. |
| 3 5 00000 10111 11011 |
8 | Bức ảnh có rất nhiều ô phân bố không đều, cần ít nhất phép đảo. |
Bình luận