本文共 588 字,大约阅读时间需要 1 分钟。
简单的DFS,省赛也有过类似的题
#include#include #include #include #include #include #include #define INF 0x3f3f3f3f#define MAXN 100010using namespace std;int m,n,vis[105][105];int dx[]={ 0,0,1,-1,1,-1,1,-1};int dy[]={ 1,-1,0,0,1,1,-1,-1};char mp[105][105];void dfs(int x,int y){ if(x<0||x>=m||y<0||y>=n||vis[x][y]||mp[x][y]!='@') return; vis[x][y]=1; for(int i=0;i<8;++i) { dfs(x+dx[i],y+dy[i]); }}int main(){ while(~scanf("%d%d",&m,&n)) { if(m==0&&n==0) break; memset(vis,0,sizeof(vis)); for(int i=0;i >mp[i][j]; int ans=0; for(int i=0;i
转载地址:http://iicvb.baihongyu.com/