x#y=floor$sqrt$min(x+y)$1+2*min x y
Probieren Sie es online aus!
Erläuterung
Diese Antwort berechnet die folgende Formel:
⌊ min ( a + b , 2 min ( a , b ) + 1 )- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -√⌋
Warum funktioniert diese Formel? Lassen Sie uns zunächst Folgendes beachten:
Jedes Quadrat mit gleichmäßiger Seitenlänge kann mit 2 × 1 Kacheln gekachelt werden.
und
Jedes Quadrat mit ungerader Länge kann gekachelt werden. Ersparen Sie ein einzelnes 1 × 1 Quadrat durch 2 × 1 Kacheln.
Jetzt stellen wir fest, dass, wenn wir diese 2 × 1 Kacheln auf ein Schachbrett legen, jedes auf einem schwarzen Quadrat und auf einem weißen Quadrat liegt. Wenn wir also ein gerades Schachbrett herstellen, muss jede Kachel ein Paar der anderen Farbe haben, und wenn wir ein ungerades Schachbrett herstellen, benötigt jede Kachel außer einer ein Paar der anderen Farbe. Dies sagt uns, dass die Antwort niemals mehr als Min 2 min ( a , b ) + 1- -- -- -- -- -- -- -- -- -- -- -- -√⌋. 2 min ( a , b )ist die maximale Anzahl von Paaren, die wir bilden können, und+ 1steht für das letzte Quadrat, das kein Paar benötigt. Das Problem dabei ist, dass wenna = bwir nicht das zusätzliche Quadrat für den ungeraden Fall haben. Also fügen wir eine weitere Bedingung hinzu: Unser Ergebnis kann nicht mehr als⌊ a + b- -- -- -- -√⌋. Das heißt, wir können kein Quadrat erstellen, das mehr Kacheln enthält, als wir zur Verfügung haben.
Wir nehmen also nur die kleinere der beiden Optionen.
⌊ min ( a + b , 2 min ( a , b ) + 1 )- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -√⌋
a = b2 min ( a , b )a + b