NEFU 561 方块计算

题目链接

简单搜索题

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int n,m,sx,sy,ans;
char data[][];
bool vis[][];
int dir[][]={{,-},{,},{-,},{,}};
void dfs(int i,int j)
{
if(vis[i][j]||i<||j<||i==n||j==m||data[i][j]!='.') return;
//printf("%d %d ***\n",i,j);
vis[i][j]=;ans++;
for(int k=;k<;k++)
dfs(i+dir[k][],j+dir[k][]);
}
int main()
{
while(cin>>m>>n&&m&&n)
{
memset(vis,,sizeof(vis));
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
cin>>data[i][j];
if(data[i][j]=='@')
{
sx=i;
sy=j;
data[i][j]='.';
}
}
//cout<<sx<<" "<<sy<<endl;
ans=;
dfs(sx,sy);
cout<<ans<<endl;
}
return ;
}
上一篇:java-mybaits-010-mybatis-spring-使用 SqlSession、注入映射器


下一篇:Oracle重做日志REDO