Un laberinto a través de 1215

Descripción [title]

Un día Extenso aventura en el bosque cuando accidentalmente caminar en un laberinto, un laberinto puede ser vista como una cuadrícula de n * n, cada punto de la cuadrícula sólo dos estados ,. Y #, que representa la antigua dijo pasable intransitables. Cuando Extenso al mismo tiempo un punto de cuadrícula, que sólo puede pasar al camión (o de arriba abajo) en el punto de la cuadrícula adyacente a uno de cuatro direcciones, Extenso quiere ir al punto B desde el punto A, no le pregunte el caso del laberinto no puede hacer. Si hay un punto de partida o punto final no pueden pasar (a #), es visto como incapaz de lograr.

[Enter]

La línea 1 es el número de grupo k de datos de prueba, seguido por k conjuntos de entradas. Cada línea de prueba 1 es un número entero positivo n (1 ≤ n ≤ 100), que representa el tamaño de la laberinto de n * n. Lo siguiente es una matriz de n * n, elementos de la matriz. O #. La siguiente línea es el HA número entero 4, la, hb, lb, descrito en la primera línea de ja A, la primera columna de la, hb B en la primera fila, primera columna lb. Observa que ha, la, hb, LB son todos a contar desde cero.

[Salida]

k filas, cada fila corresponde a una salida de entrada. Puede hacerlo, entonces la salida "si", de lo contrario un "NO".

[Enter] Muestra 3

## 
.. # 
# .. 
0 0 2 2 
5 
..... 
###. # 
.. # .. 
### .. 
... # 
0040 


esta pregunta idea es, la voluntad puede llegar al punto teñido de negro ( "#"), si toda la celosía puede ir a tomar teñido de negro, pero al final todavía no está manchada,
no puede, por el contrario lo que pueda


Código:


#include <la iostream>
#include <cstdio>
#include <la cmath>
#include <CString>
#include <la cstdlib>
#include <algoritmo>
el using namespace std;
// DFS función; DFS void (int, int)
bandera int = 0 ; // Can determinó venir
dx int [4] = {1 , -1,0,0}, dy [4] = {0,0,1, -1}; // corresponden a cuatro se mueve, y el caballo tienen el mismo día propósito pie 
int n, SX, SY, LX, LY;
char a [101] [101]; // n está en el intervalo de menos de o igual a 100, 101 de modo suficiente. Y aquí para definir variables globales, DFS convenientes

Función en uso
int main ()
{
int R & lt;
lt CIN >> I +;
el tiempo (& lt R -) // Número de conjunto de datos de prueba
{
En Flag = 0;
CIN n - >>;
for (int i = 0; I <n-; I ++ )
for (int J = 0; J <n-; J ++)
CIN >> a [i] [j]; // carácter de entrada
cin >> sx >> sy >> lx >> Ly; // entrada de una posición de inicio y posición final
si (a [SX] [SY ] == '#' || un [lx] [mente] == '#') // Si el punto inicial o final es directamente "#", ciertamente no es
{
En la bandera = 0;
}
else
la DFS (SX, SY); // fin si el punto de partida es (esperemos llegar), entonces la búsqueda "".
SI (bandera == 1) // después de buscar, si la bandera es 1, entonces se puede, por el contrario, versa
COUT << "SÍ" << endl;
IF (En la bandera == 0)
COUT << "NO" << endl;
}
return 0;
}
DFS void (int X,la ordenada en el int)
{
SI (bandera == 1)
de retorno; // Si llega a la línea de meta, entonces usted no tiene que seguir buscando más, y el juicio puede ser devuelto directamente
si (a [x] [y ] == '#') // Si este punto no puede caminar, y entonces se determina no volver directamente
{
En Flag = 0;
retorno;
}
IF (X == Y == && LX LY) // si llegado al final de este tiempo, entonces se puede demostrar directamente de regreso
{
en Flag = 1;.
retorno;
}
la else // o cuatro tipos de analógico y se mueve teñidas
{
un [X] [y] = '#'; // teñido negro ( "#")
for (int i = 0; <. 4; I ++ // cuatro tipos mueve I)
si (x + dx [i] > = 0 && x + dx [i] <n && y + dy [i]> = 0 && y + dy [i] <n && un [x + dx [i]] [y + dy [i]] == '') // debe prestar atención a las condiciones de contorno, en donde

Es mayor o igual que 0 y menor que n, y el punto debe ser pisado "".
DFS (X + DX [I], Y + Dy [I]); // recursivamente buscar la siguiente dot
}
}

 

Cada pregunta tiene una forma diferente de pensar, la única pregunta cepillo, el pensamiento del suelo, con el fin de encontrar el sentimiento

Supongo que te gusta

Origin www.cnblogs.com/57xmz/p/12571834.html
Recomendado
Clasificación