zoukankan      html  css  js  c++  java
  • 黑白迷宫问题——深度优先搜索算法

    2021年,九月,小w发现自己位于一个巨大的由黑格和白格组成的n行m列的迷宫中。

    小w只能从白格走到黑格或从黑格走到白格,

    小w找到了ljf,她想知道自己从每一个格子出发不回头可以走多少个格子。

    但是ljf忙于在ioi中虐场,把问题留给了你。

    注意:原题是可以回头,属于连通图问题,这个题目是我把题意给理解错了,只好将错就错...

    输入格式:

    第一行:两个整数 n、m
    接下来n行m列描述这个迷宫
    若第i行,第j个为1,则表示迷宫的第ii行第jj个格子为黑,反之则为白。

    输出格式

         

    n行m列
    第i行第j个数表示从第ii行第jj个格子能走到的格子总数

    输入样例1

    2 2
    1 0
    

    输出样例2

    2 2

     输入样例2

    2 4
    1 0 0 0 
    0 1 0 1

    输出样例2

    6 5 1 7
    7 4 5 6

    数据范围:

    对于30%的数据 n,m≤50n,m≤50

    另外10%的数据 所有格子都为黑格

    对于100%的数据 n,m≤2000 

    #include<iostream>
    using namespace std;
    #define M 2000
    int graph[M][M] = {1,0};
    int result[M][M];
    int visited[M][M];
    int nx, ny,n=1,m=2;
    int dx[4] = { 1,-1,0,0 },
    	dy[4] = { 0,0,1,-1 };
    int max=0;
    int search(int x,int y,int k) {			//深度优先搜索算法
    	visited[x][y] = 1;
    	max = k > max ? k : max;
    	for (int i = 0; i < 4; i++) {		//四个方向进行搜索
    		nx = x + dx[i];
    		ny = y + dy[i];
    		if (nx >= 0 && nx < n&&ny >= 0 && ny < m && !visited[nx][ny] && graph[x][y] != graph[nx][ny]) {		//探测判断
    			visited[nx][ny] = 1;
    			search(nx, ny, k+1);        //进行下一次探测
    		}
    	}
    	return max;
    }
    int main(){
    	cin >> n >> m;
    	for (int i=0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			cin >> graph[i][j];
    		}
    	}
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			memset(visited, 0, sizeof(visited));		//数据初始化
    			max = 0;
    			result[i][j] = search(i, j, 1);
    		}
    	}
    	cout << "结果:" << endl;
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			cout << result[i][j] << " ";
    		}
    		cout << endl;
    	}
    	return 0;
    }
  • 相关阅读:
    练习:使用nmcli 配置网络连接
    编辑网络配置文件
    ETCD安装
    LInux部署本地DNSbind9
    Linux 修改tomcat9相关参数优化
    Linux-编写SHELL 加密解密方法
    Jenkins的安装部署
    lepus 配置监控Mysql+Redis+Mongodb服务器
    lepus部署
    prometheus + grafana 安装 监控 redis mysql mongodb Linux服务器
  • 原文地址:https://www.cnblogs.com/F-itachi/p/9974338.html
Copyright © 2011-2022 走看看