| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么是wa 有高人能指点一下吗In Reply To:为什么是wa 有高人能指点一下吗 Posted by:00448322 at 2005-04-25 21:21:59 #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:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator