zoukankan      html  css  js  c++  java
  • 走迷宫(回溯、深搜)判断能否到终点

    时限:1000ms 内存限制:10000K  总时限:3000ms 描述:

    判断是否能从迷宫的入口到达出口

    输入: 先输入两个整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。

    输出: 若能到达,则输出"Yes",否则输出"No",结果占一行。

    输入样例:

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

    输出样例:

    Yes

    输入样例:

    12 12
    1 8
    10 7
    1 1 1 1 1 1 1 1 1 1 1 1
    1 0 0 0 0 0 0 1 0 1 1 1
    1 0 1 0 1 1 0 0 0 0 0 1
    1 0 1 0 1 1 0 1 1 1 0 1
    1 0 1 0 0 0 0 0 1 0 0 1
    1 0 1 1 1 1 1 1 1 1 1 1
    1 0 0 0 1 0 1 0 0 0 0 1
    1 0 1 1 1 0 0 0 1 1 1 1
    1 0 0 0 0 0 1 0 0 0 0 1
    1 1 1 0 1 1 1 1 0 1 0 1
    1 1 1 1 1 1 1 0 0 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1

    输出样例:

    Yes

    #include<stdio.h>
    int Arr[30][30];//最大迷宫为30*30
    int Rownum=0,Colnum=0;//行列数
    int Beginrow,Begincol,Endrow,Endcol;//终点坐标
    int state=0;//迷宫走通与否状态
    int canplace(int row,int col)//判断当前点能否走通
    {
        if(row>=0 &&col>=0 &&row<Rownum &&col<Colnum &&Arr[row][col]==0)//为越界且可走通
            return 1;
        return 0;
    }
    void search(int row,int col)
    {
        if(row==Endrow && col==Endcol)//是目标终点    
        {    state=1;  return ;   }
        
        int r,c;
        Arr[row][col]=1;//对可走通的点进行标记
        r=row-1; c=col; //
        if(canplace(r,c))  search(r,c); 
        r=row; c=col+1;//
        if(canplace(r,c))  search(r,c); 
        r=row+1;  c=col;//
        if(canplace(r,c))  search(r,c); 
        r=row;    c=col-1;//
        if(canplace(r,c))  search(r,c); 
    }
    int main()
    { 
        int i,j;
        scanf("%d%d",&Rownum,&Colnum);//输入迷宫行列数  
        scanf("%d%d%d%d",&Beginrow,&Begincol,&Endrow,&Endcol);//起始点,终点坐标
        for(i=0;i<Rownum;i++)
            for(j=0;j<Colnum;j++)
               scanf("%d",&Arr[i][j]);       //一行一行的输入迷宫布局
        
        Arr[Beginrow][Begincol]=1;
        search(Beginrow,Begincol);
        //一个迷宫搜索路径后的最终状态,起始点接通与否
        if(state==1)
            printf("Yes\n");
        else
            printf("No\n");    
        return 0;
    }
  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/IThaitian/p/2585257.html
Copyright © 2011-2022 走看看