hdu-1312-Red and Black
2014-05-02 16:38
357 查看
#include<stdio.h>
#include<string.h>
char a[21][21];
int w,h,sum,b[21][21];
void dfs(int x,int y)
{
sum++;
if(!b[x+1][y]&&a[x+1][y]=='.'&&x+1<h)
{
b[x+1][y]=1;
dfs(x+1,y);
// b[x+1][y]=0;
}
if(!b[x-1][y]&&a[x-1][y]=='.'&&x-1>=0)
{
b[x-1][y]=1;
dfs(x-1,y);
// b[x-1][y]=0;
}
if(!b[x][y+1]&&a[x][y+1]=='.'&&y+1<w)
{
b[x][y+1]=1;
dfs(x,y+1);
// b[x][y+1]=0;
}
if(!b[x][y-1]&&a[x][y-1]=='.'&&y-1>=0)
{
b[x][y-1]=1;
dfs(x,y-1);
// b[x][y-1]=0;
}
}
int main()
{
int i,j;
while(scanf("%d%d",&w,&h)&&w+h)
{
int k1,k2;
memset(b,0,sizeof(b));
getchar();
for(i=0;i<h;i++)
{
for(j=0;j<w;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='@')
{
k1=i;
k2=j;
}
}
getchar();
}
sum=0;
dfs(k1,k2);
b[k1][k2]=1;
printf("%d\n",sum);
}
return 0;
}
#include<string.h>
char a[21][21];
int w,h,sum,b[21][21];
void dfs(int x,int y)
{
sum++;
if(!b[x+1][y]&&a[x+1][y]=='.'&&x+1<h)
{
b[x+1][y]=1;
dfs(x+1,y);
// b[x+1][y]=0;
}
if(!b[x-1][y]&&a[x-1][y]=='.'&&x-1>=0)
{
b[x-1][y]=1;
dfs(x-1,y);
// b[x-1][y]=0;
}
if(!b[x][y+1]&&a[x][y+1]=='.'&&y+1<w)
{
b[x][y+1]=1;
dfs(x,y+1);
// b[x][y+1]=0;
}
if(!b[x][y-1]&&a[x][y-1]=='.'&&y-1>=0)
{
b[x][y-1]=1;
dfs(x,y-1);
// b[x][y-1]=0;
}
}
int main()
{
int i,j;
while(scanf("%d%d",&w,&h)&&w+h)
{
int k1,k2;
memset(b,0,sizeof(b));
getchar();
for(i=0;i<h;i++)
{
for(j=0;j<w;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='@')
{
k1=i;
k2=j;
}
}
getchar();
}
sum=0;
dfs(k1,k2);
b[k1][k2]=1;
printf("%d\n",sum);
}
return 0;
}
相关文章推荐
- hdu 1312 Red and Black (bf、dfs)
- HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)
- HDU 1312 Red and Black (dfs基础题)
- hdu1312 Red and Black
- hdu 1312 Red and Black(DFS)
- hdu 1312 Red and Black
- hdu 1312 Red and Black(bfs实现)
- HDU1312 Red and Black(搜索)
- hdu 杭电 1312 Red and Black
- hdu 1312 Red and Black
- hdu 1312 Red and Black
- hdu 题目1312 Red and Black ( DFS )
- hdu 1312 Red and Black DFS
- HPU DFS + BFS 专项练习A - Red and Black HDU - 1312
- hdu 1312 Red and Black
- hdu 1312Red and Black(DFS)
- HDU 1312 Red and Black 【DPS】
- hdu 1312 Red and Black
- HDU-1312-Red and Black
- hdu 1312 Red and Black