C - prueba de la pila y la estructura de datos de la cola diez: Maze

Descripción

Un laberinto de celosía compuesta de n * m, el punto de partida es (1, 1), el punto final es (n, m), cada uno puede tomar cualquiera de la etapa de cuatro direcciones, y algunos no pueden mover la red, a partir de la solicitud después del final de cada cuadrícula para tomar el número de la ley como máximo una vez.
entrada

   第一行一个整数T 表示有T 组测试数据。(T <= 110)

Para cada conjunto de datos de prueba:

La primera línea de dos números enteros n, m, n * m representa laberintos cuadrados. (1 <= n, m <= 6, (n, m)! = (1, 1)) siguiente n líneas, cada número de línea m. Cuando la i-ésima fila y j es el número 0 para i-ésima fila j-ésima de celosía puede ir, de lo contrario es 1 indica que la red no puede ir, entrar en el inicio y los puntos finales son para asegurar que todos pueden ir.

Los datos de prueba entre dos grupos están separados por una línea en blanco.
salida

Para cada caso de prueba, la salida de un número entero R, donde R representa una especie de movimientos.

Muestra

Entrada

3
2 2
0 1
0 0
2 2
0 1
1 0
2 3
0 0 0
0 0 0
Salida

1
0
4

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
int Map[110][110],s[110][110];
int n,m,num;
void dfs(int x,int y)
{
    if(x<1||y<1||x>n||y>m||s[x][y]||Map[x][y])//限制xy能走的部分
        return ;
    else
    {
        if(x == n&&y == m)//走到终点了
        {
            num ++;//可以走通的路径加1
            return ;
        }
        else
        {
            Map[x][y] = 1;//标记这个边已经走过了
            dfs(x-1,y);
            dfs(x+1,y);
            dfs(x,y-1);
            dfs(x,y+1);
            Map[x][y] = 0;//道路不通返回的时候重新置0
        }
    }
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&n,&m);
        num = 0;
        memset(Map,0,sizeof(Map));
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
                scanf("%d",&s[i][j]);
        }
        dfs(1,1);
        printf("%d\n",num);
    }
    return 0;
}

Publicados 177 artículos originales · ganado elogios 7 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/Fusheng_Yizhao/article/details/104882304
Recomendado
Clasificación