Rundenbasierte Taktikspiele wie Advance Wars, Wargroove und Fire Emblem bestehen aus einem quadratischen Gitter mit unterschiedlichem Gelände und Einheiten unterschiedlicher Bewegungsklassen, die für jeden Geländetyp unterschiedliche Kosten erfordern. Wir werden eine Untergruppe dieses Problems untersuchen.
Herausforderung
Ihre Aufgabe ist es zu bestimmen, ob ein Ort von einem anderen aus erreichbar ist, wenn ein Raster von Geländekosten und eine Bewegungsgeschwindigkeit vorgegeben ist.
Einheiten können sich nur orthogonal bewegen, wenn die Kosten für das Bewegen auf ein Quadrat dem Wert der entsprechenden Zelle auf dem Gitter entsprechen (das Abheben ist kostenlos). Zum Beispiel kostet der Wechsel von einer Zelle mit dem Wert 3 zu einer Zelle mit dem Wert 1 1 Bewegung, der Wechsel in die andere Richtung erfordert 3 Bewegungen. Auf einige Felder kann möglicherweise nicht zugegriffen werden.
Beispiel
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
Um von [1]
nach zu gelangen, <1>
sind mindestens 7 Bewegungspunkte erforderlich, indem Sie ein Feld nach rechts und dann drei nach unten bewegen. Wenn also die Bewegungsgeschwindigkeit 6 oder weniger beträgt, sollten Sie eine falsche Antwort ausgeben.
Beispiel Testfälle
Bei diesen werden Koordinaten mit Nullindex (Zeile, Spalte) und nicht in eckigen Klammern angegeben, um das Parsen zu vereinfachen. Nicht erreichbare Zellen werden mit dargestelltX
Fall 1a
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (2, 3) to (0, 1)
Output: True
Fall 1b
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 4
From (2, 3) to (0, 1)
Output: False
Fall 1c
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (0, 1) to (2, 3)
Output: False
Fall 2a
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (3, 4) to (2, 1)
Output: True
Fall 2b
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 4
From (3, 4) to (2, 1)
Output: False
Fall 2c
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (1, 8) to (2, 7)
Output: True
Fall 3a
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
Fall 3b
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
Regeln, Annahmen und Hinweise
- Standardlücken sind verboten, I / O kann in jedem beliebigen Format vorliegen
- Sie können davon ausgehen, dass sich alle Koordinaten auf dem Raster befinden
- Die Bewegungsgeschwindigkeit wird niemals über 100 liegen
- Unzugängliche Zellen können mit sehr großen Zahlen (z. B. 420, 9001, 1 Million) oder mit 0 oder Null dargestellt werden, je nachdem, was für Sie am bequemsten ist.
- Alle Eingaben bestehen aus positiven Ganzzahlen (es sei denn, Sie verwenden Null oder 0, um nicht erreichbare Zellen darzustellen).