1 #include<iostream> 2 #include<queue> 3 using namespace std; 4 int m,n; 5 int a[103][103]; 6 int dir[4][2]={1,0,0,1,-1,0,0,-1}; 7 int book[103][103]; 8 struct node{ 9 int x; 10 int y; 11 int step; 12 node(int xx,int yy,int step1):x(xx),y(yy),step(step1){ 13 } 14 }; 15 queue<node> q; 16 void bfs(){ 17 while(!q.empty()){ 18 node s=q.front(); 19 for(int i=0;i<4;i++){ 20 int dx=s.x+dir[i][0]; 21 int dy=s.y+dir[i][1]; 22 if(dx>=1&&dx<=m&&dy>=1&&dy<=n&&a[dx][dy]==1&&book[dx][dy]==0){ 23 book[dx][dy]=1; 24 q.push(node(dx,dy,s.step+1)); 25 a[dx][dy]=s.step+1; 26 } 27 } 28 q.pop(); 29 } 30 } 31 int main(){ 32 scanf("%d%d",&m,&n); 33 for(int i=1;i<=m;i++){ 34 for(int j=1;j<=n;j++){ 35 scanf("%d",&a[i][j]); 36 if(a[i][j]==0){ 37 q.push(node(i,j,0)); 38 } 39 } 40 } 41 bfs(); 42 for(int i=1;i<=m;i++){ 43 for(int j=1;j<=n;j++){ 44 printf("%d ",a[i][j]); 45 } 46 printf("\n"); 47 } 48 return 0; 49 }
0 1 矩阵
猜你喜欢
转载自www.cnblogs.com/fate-/p/12438947.html
今日推荐
周排行