C - test de la pile et la structure de données file d'attente dix: Maze

La description

Un labyrinthe de réseau composé de n * m, le point de départ est (1, 1), le point d'extrémité est (n, m), chacun d' eux peut prendre l' une de l'étape quatre directions, et certains ne peuvent pas déplacer le treillis, à partir de la demande après la fin de chaque grille pour prendre le nombre de la loi au plus une fois.
contribution

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

Pour chaque ensemble de données de test:

La première ligne de deux entiers n, m, n * m représente labyrinthes carrés. (1 <= n, m <= 6, (n, m)! = (1, 1)) suivant n lignes, chaque numéro de ligne m. Lorsque le i-ième ligne et j est le nombre 0 pour i-ème j-ème réseau ligne peut aller, sinon il est 1 indique que la grille ne peut pas aller, entrez le début et la fin doivent veiller à ce que tous puissent aller.

Les données d'essai entre les deux groupes sont séparés par une ligne vide.
sortie

Pour chaque cas d'essai, la sortie d'un nombre entier de R, où R représente une espèce se déplace.

Échantillon

Contribution

3
2 2
0 1
0 0
2 2
0 1
1 0
2 3
0 0 0
0 0 0
Sortie

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;
}

Publié 177 articles originaux · a gagné les éloges 7 · vues 30000 +

Je suppose que tu aimes

Origine blog.csdn.net/Fusheng_Yizhao/article/details/104882304
conseillé
Classement