Bìa hình chữ nhật
Giả sử bạn có một ma trận các bit, ví dụ như sau.
1 1 0 0 0 1 1 0
1 1 1 1 0 1 1 1
0 1 1 1 0 1 1 1
1 1 0 1 1 1 1 0
1 1 0 1 1 1 0 1
Chúng tôi muốn tìm một bìa hình chữ nhật cho ma trận này. Nó là một tập hợp các tập con hình chữ nhật của ma trận không chứa bất kỳ 0 nào, nhưng cùng chứa tất cả các số 1. Các tập con không bắt buộc phải rời rạc. Dưới đây là một ví dụ về bìa hình chữ nhật cho ma trận trên.
+----+ +----+
|1 1| 0 0 0 |1 1| 0
| | | |
| +-|-----+ | |+-+
|1 |1| 1 1| 0 |1 1||1|
+----+ | | || |
| | | || |
0 |1 1 1| 0 |1 1||1|
+-------+ | |+-+
+----+ +-----|-+ |
|1 1| 0 |1 1 |1| 1| 0
| | | +----+
| | | | +-+
|1 1| 0 |1 1 1| 0 |1|
+----+ +-------+ +-+
Số lượng hình chữ nhật trong bìa này là 7.
Nhiệm vụ
Đầu vào của bạn là một ma trận hình chữ nhật của các bit, được lấy ở bất kỳ định dạng hợp lý nào. Bạn có thể giả sử nó chứa ít nhất một 1. Đầu ra của bạn là số lượng hình chữ nhật tối thiểu trong một bìa hình chữ nhật của ma trận.
Số byte thấp nhất sẽ thắng. Luật golf tiêu chuẩn được áp dụng.
Các trường hợp thử nghiệm
[[1]] -> 1
[[1,1]] -> 1
[[1],[1]] -> 1
[[1,0,1]] -> 2
[[1,0],[0,0]] -> 1
[[1,0],[0,1]] -> 2
[[1,0],[1,1]] -> 2
[[1,1,1],[1,0,1]] -> 3
[[0,1,0],[1,1,1],[0,1,0]] -> 2
[[1,1,1],[1,0,1],[1,1,1]] -> 4
[[1,1,0],[1,1,1],[0,1,1]] -> 2
[[1,0,1,0],[1,1,1,1],[1,0,1,0]] -> 3
[[1,1,1,0],[1,0,1,0],[1,1,1,1],[0,0,1,0]] -> 4
[[1,1,1,0],[1,0,1,0],[1,1,1,1],[0,0,1,1]] -> 5
[[1,1,1,0],[1,0,1,0],[1,1,1,1],[0,1,1,1]] -> 4
[[1,1,0,0],[1,1,1,0],[0,1,1,1],[0,0,1,1]] -> 3
[[0,1,0,0],[0,1,1,1],[1,1,1,0],[0,0,1,0]] -> 4
[[0,0,1,0,0],[0,1,1,1,0],[1,1,1,1,1],[0,1,1,1,0],[0,0,1,0,0]] -> 3
[[0,1,0,0],[0,1,1,1],[1,1,1,0],[0,0,1,0]]
, 4.