水陆距离
给定一个N x M的01矩阵,其中1表示陆地,0表示水域。对于每一个位置,求出它距离最近的水域的距离是多少。
矩阵中每个位置与它上下左右相邻的格子距离为1。
Input
第一行包含两个整数,N和M。
以下N行每行M个0或者1,代表地图。
数据保证至少有1块水域。
对于30%的数据,1 <= N, M <= 100
对于100%的数据,1 <= N, M <= 800
Output
输出N行,每行M个空格分隔的整数。每个整数表示该位置距离最近的水域的距离。
Sample Input
4 4
0110
1111
1111
0110
Sample Output
0 1 1 0
1 2 2 1
1 2 2 1
0 1 1 0
题目大意:0为水域,求各点到水域的最小距离
思路: 比赛看到这道题就想着用BFS ,标记所有0,并从0开始广搜,更新最小距离d[i][j]
但是交上去超时了,想办法想办法剪枝后还是不行,就先去做其他题了
然后发现从一个0的点开始搜索就够了 因为当前的点都是距离最小的 所以它下一步到达的点一定也会是最小的
代码:
#include<stdio.h>
#include<string.h>
#inc