首页 > 代码库 > HDU-1312-Red and Black
HDU-1312-Red and Black
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1312
此题注意n,m 表示到底是行还是列
代码
#include<stdio.h>
#include<string.h>
int n,m,cnt;
char s[30][30];
int to[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
void dfs(int i,int j)
{
cnt++;
s[i][j]=‘#‘;
int k;
for(k=0;k<4;k++)
{
int x=i+to[k][0];
int y=j+to[k][1];
if(x>=0&&x<n&&y>=0&&y<m&&s[x][y]==‘.‘)
dfs(x,y);
}
}
int main(void)
{
int i,j;
int fi,fj;
while(scanf("%d%d",&m,&n)==2&&(n+m))
{
getchar();
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%c",&s[i][j]);
if(s[i][j]==‘@‘)
{
fi=i;
fj=j;
}
}
getchar();
}
cnt=0;
s[fi][fj]=‘#‘;
dfs(fi,fj);
printf("%d\n",cnt);
}
return 0;
}
HDU-1312-Red and Black
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。