1RMB红包求dalao改错

回复帖子

@lonely_isky 2016-10-20 19:24 回复
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
struct P {
    int x,y;
};
int a[40][40] ,vis[40][40],n;
void bfs(int x,int y)
{  if (vis[x][y]) return ;
    vis[x][y] = 1;
   P b;
   int w=x;
   int z=y;
   int nx[]={0,-1,0,1};
   int ny[]={1,0,-1,0};
   queue <P> q;
   if (!a[x][y] && vis[x][y])
     q.push(b);
     while (!q.empty())
     { q.pop();
        for (int i = 1 ; i <= n ;i++)
            {
             w= x+nx[i];
             z= y+ny[i];
             if (!w||!z||w == n+1 || z == n+1) 
               return ;
             if (w>0 &&z>0 && w <=n && z <=n)
              { if (!a[w][z] &&!vis[w][z]) 
                bfs(w,z);
              }
              for (int i = 1; i <= n ;i ++) 
                for (int j =1 ;j <= n; j++)
                 if (!a[x][y])
                 {vis[x][y]= 1;
                  a[x][y]= 2;
                 }
                          }
     }
 }
int main ()
{
   cout<<endl;
   cin >> n; 
   for (int i =1 ; i <= n; i++)
     for (int j  =1 ; j <= n ;j++) 
       cin >>a[i][j];
        for (int i = 1 ; i<= n;i++)
          for(int  j= 1 ; j<= n ;j ++)
           if (!a[i][j]) bfs(i,j);
        for (int i =1 ;i<= n ;i++)
         {  for (int  j =1; j<= n; j++)
              cout << a[i][j]<<" ";
            cout <<endl;      }
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。