Rechteckabdeckungen
Angenommen, Sie haben eine Bitmatrix, zum Beispiel die folgende.
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
Wir möchten für diese Matrix eine rechteckige Abdeckung finden . Es ist eine Menge von rechteckigen Teilmengen der Matrix, die keine Nullen enthalten, aber zusammen alle Einsen enthalten. Die Teilmengen müssen nicht disjunkt sein. Hier ist ein Beispiel einer rechteckigen Abdeckung für die obige Matrix.
+----+ +----+
|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|
+----+ +-------+ +-+
Die Anzahl der Rechtecke in diesem Cover beträgt 7.
Die Aufgabe
Ihre Eingabe ist eine rechteckige Bitmatrix in einem beliebigen Format. Sie können davon ausgehen, dass es mindestens eine 1 enthält. Ihre Ausgabe ist die Mindestanzahl von Rechtecken in einer Rechteckabdeckung der Matrix.
Die niedrigste Byteanzahl gewinnt. Es gelten die Standardregeln für Code-Golf .
Testfälle
[[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]]