Bestimmen Sie bei zwei zusammenhängenden Formen desselben Bereichs den optimalen Weg, um die erste Form in eine minimale Anzahl zusammenhängender Segmente zu unterteilen, sodass sie neu angeordnet werden können, um die zweite Form zu bilden. Mit anderen Worten, ermitteln Sie die Mindestanzahl der erforderlichen Segmente, die beide Formen bilden können.
"Zusammenhängend" bedeutet, dass jedes Quadrat in der Form von jedem anderen Quadrat aus erreicht werden kann, indem man über Kanten geht. Formen und Segmente dürfen Löcher haben.
"Neu anordnen" bedeutet, dass Sie die Segmente verschieben. Sie können sie übersetzen, drehen und reflektieren.
Die Formen sind in einem Raster enthalten. Mit anderen Worten, jede Form besteht aus einer Sammlung von Einheitsquadraten, die durch ihre Ecken / Kanten verbunden sind.
Eingabespezifikationen
Die Eingabe wird in einem angemessenen Format bereitgestellt - Liste der Punkte, Array von Zeichenfolgen, die jedes Raster darstellen usw. Auf Anfrage können Sie auch die Größe des Rasters übernehmen. Die Gitter haben die gleichen Abmessungen und die beiden Formen haben garantiert die gleiche Fläche, und die Fläche ist positiv.
Ausgabespezifikationen
Die Ausgabe sollte nur eine einzelne positive Ganzzahl sein. Beachten Sie, dass es immer eine positive Antwort gibt, da Sie im schlimmsten Fall die Formen einfach in N
Einheitsquadrate unterteilen.
Beispiele
Die Beispiele werden als Raster .
dargestellt, wobei ein Leerzeichen und ein #
Teil der Form dargestellt werden.
Fall 1
Eingang
.....
.###.
.#.#.
.###.
.....
###..
..#..
..#..
..###
.....
Ausgabe
2
Erläuterung
Sie können es in zwei L-förmige 4er-Blöcke unterteilen:
#
###
Fall 2
Eingang
#...
##..
.#..
.##.
.##.
####
....
....
Ausgabe
2
Erläuterung
Sie können die Formen folgendermaßen aufteilen:
A...
AA..
.A.
.BB.
.AA.
BBAA
....
....
Sie könnten auch tun:
A...
AA..
.B..
.BB.
.AB.
AABB
....
....
Fall 3
Eingang
#....#
######
.####.
.####.
Ausgabe
2
Erläuterung
A....B
AAABBB
.ABBB.
.AAAB.
(Dieser Testfall zeigt die Notwendigkeit, Formen für eine optimale Ausgabe zu drehen / reflektieren.)
Fall 4
Eingang
.###.
..#..
.##..
.##..
Ausgabe
2
Erläuterung
Unabhängig davon, wie Sie Blöcke auswählen, verhindert die Auswahl eines 2x1 aus der ersten Form zwangsläufig, dass die beiden anderen zusammen gruppiert werden. Somit können Sie eine 2x1 und zwei 1x1 verwenden. Allerdings (danke @Jonah) können Sie es in eine 3-Block-L-Form und ein einzelnes Quadrat wie folgt aufteilen:
.AAB.
..A..
.AA..
.BA..