Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## Re:为什么是wa 有高人能指点一下吗

Posted by SJY021210 at 2016-08-26 13:57:24 on Problem 2386
In Reply To:Re:为什么是wa 有高人能指点一下吗 Posted by:SJY021210 at 2016-08-26 13:56:55
```> #include<cstdio>
> using namespace std;
>
> int a[1000][2];
> int b[1000][2];
> bool z[101][101]={false};
>
> int main()
> {
>     int i,j,m,n,l,h,t,x,y,k;
>     char ch;
>
>     scanf("%d%d",&n,&m);
>
>     k=0;
>
>     for(i=0;i<n;i++)
>     {
>         for(j=0;j<m;j++)
>         {
>             scanf("%c",&ch);
>
>             if(ch=='.')
>             {
>                 z[i][j]=true;
>             }
>             else
>             {
>                 z[i][j]=false;
>                 a[k][0]=i;
>                 a[k][1]=j;
>                 k++;
>             }
>
>         }
>
>     }
>
>     l=0;
>     i=0;
>
>     while(i<k)
>     {
>         while(i<k&&z[a[i][0]][a[i][1]])
>         {
>             i++;
>         }
>         if(i==k)
>         {
>             break;
>         }
>
>         x=a[i][0];
>         y=a[i][1];
>         h=0;
>         t=1;
>         b[h][0]=x;
>         b[h][1]=y;
>
>         while(h<t)
>         {
>             x=b[h][0];
>             y=b[h][1];
>             h++;
>
>             if(x+1<n&&!z[x+1][y])
>             {
>                 b[t][0]=x+1;
>                 b[t][1]=y;
>                 t++;
>                 z[x+1][y]=true;
>             }
>
>             if(y+1<m&&!z[x][y+1])
>             {
>                 b[t][0]=x;
>                 b[t][1]=y+1;
>                 t++;
>                 z[x][y+1]=true;
>             }
>
>             if(x>0&&!z[x-1][y])
>             {
>                 b[t][0]=x-1;
>                 b[t][1]=y;
>                 t++;
>                 z[x-1][y]=true;
>             }
>
>             if(y>0&&!z[x][y-1])
>             {
>                 b[t][0]=x;
>                 b[t][1]=y-1;
>                 t++;
>                 z[x][y-1]=true;
>             }
>
>             if(x+1<n&&y+1<m&&!z[x+1][y+1])
>             {
>                 b[t][0]=x+1;
>                 b[t][1]=y+1;
>                 t++;
>                 z[x+1][y+1]=true;
>             }
>
>             if(x+1<n&&y>0&&!z[x+1][y-1])
>             {
>                 b[t][0]=x+1;
>                 b[t][1]=y-1;
>                 t++;
>                 z[x+1][y-1]=true;
>             }
>
>             if(x>0&&y+1<m&&!z[x-1][y+1])
>             {
>                 b[t][0]=x-1;
>                 b[t][1]=y+1;
>                 t++;
>                 z[x-1][y+1]=true;
>             }
>
>             if(x>0&&y>0&&!z[x-1][y-1])
>             {
>                 b[t][0]=x-1;
>                 b[t][1]=y-1;
>                 t++;
>                 z[x-1][y-1]=true;
>             }
>
>         }
>         l++;
>     }
>
>     printf("%d\n",l);
>
>     return 0;
> }

Followed by: