雨不眠de下 2018-11-03 08:38 采纳率: 0%
浏览 408

求助大佬!这道题究竟该怎么做?

题目描述
2021年,九月,小w发现自己位于一个巨大的由黑格和白格组成的nn行mm列的迷宫中。

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

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

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

输入格式
第一行:两个整数 n,mn,m
接下来nn行mm列描述这个迷宫

若第ii行,第jj个为1,则表示迷宫的第ii行第jj个格子为黑,反之则为白。

输出格式
nn行mm列

第ii行第jj个数表示从第ii行第jj个格子能走到的格子总数

输入样例
1 2
10
输出样例
2 2
数据范围
对于30%的数据 n,m≤50n,m≤50
另外10%的数据 所有格子都为黑格

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

  • 写回答

2条回答

  • Italink 2018-11-03 10:03
    关注

    这是一个深度搜索算法的题目.有用的话请采纳=.=

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

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算