Este desafío se basa en Flow Free. Puede encontrar una versión en línea aquí: http://www.moh97.us/
Se le dará un rompecabezas, y debe regresar 1si el rompecabezas tiene solución, o 0si no lo es.
Para resolver un rompecabezas, el jugador debe crear una ruta para conectar cada par de números usando cada cuadrado vacío exactamente una vez.
Se te pasan las dimensiones del cuadrado y luego la x, y, c (donde c es un número que representa el color) de cada punto. Por ejemplo:
Si le 5,5 0,0,0 3,0,1 1,1,2 1,2,2 4,2,1 4,4,0fue pasado, representaría:
0..1.
.2...
.2..1
....0
Y debe devolver 1.
Aquí hay algunos problemas de prueba más:
5,2 2,0,1 0,1,2 4,1,2 representa:
..1..
2...2
y no es solucionable porque solo hay 1 1.
4,2 0,0,0 3,0,0 0,1,0 3,1,0 representa:
0..0
0..0
y no tiene solución porque incluye más de 2 0s.
8,6 0,0,1 7,5,1 representa:
1.......
........
........
........
........
.......1
y no tiene solución (ya que no puedes usar todos los cuadrados).
2,5 0,0,1 2,0,6 4,0,6 0,1,4 3,1,4 4,1,1 representa:
1.6.6
4..41
y no es solucionable porque no puede conectar los 1s.
6,3 1,0,4 5,0,1 0,1,4 1,1,3 5,1,3 0,2,2 3,2,2 5,2,1 representa:
.4...1
43...3
2..2.1
y no es solucionable porque no puede conectar los 1 (o los 3), ya que los dos caminos deben cruzarse necesariamente.
5,2 0,0,1 3,0,1 0,1,3 4,1,1 representa:
1..1.
3...3
y no se puede resolver porque no puedes usar todos los cuadrados para construir un camino.
2,2 0,0,0 1,1,0 representa:
1.
.1
y no es solucionable porque tampoco puedes usar todos los cuadrados aquí
Aquí hay algunas pruebas más:
5,5 0,3,0 0,4,1 1,2,2 1,3,1 2,0,0 3,0,4 3,1,2 3,3,5 3,4,4 4,4,5 debería devolver 1
13,13 1,1,0 9,1,1 10,1,2 11,1,3 1,2,4 2,2,5 5,2,6 7,2,7 3,3,0 5,4,6 6,4,1 9,6,3 4,7,8 5,8,9 12,8,8 11,9,10 2,10,4 4,10,2 9,10,5 11,10,7 1,11,9 12,12,10 debería devolver 1
7,7 0,0,0 0,1,1 1,1,2 2,1,3 4,2,4 0,3,1 5,3,3 0,4,4 2,4,5 5,4,2 0,5,0 1,5,5 3,5,6 3,7,6 debería devolver 0
Este es un código de golf, y se aplican las reglas estándar.
fuente

1si alguna de ellas visita todas las celdas y conecta todas las terminales. Obviamente, este enfoque no se completaría en un período de tiempo razonable para nada más que el más pequeñoN(número de celdas vacías), pero todavía tenemos una garantía matemática de que el algoritmo eventualmente devolverá el valor correcto.Respuestas:
Haskell
Llave
fuente