5 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=1e4+10; char n[N][N]; int w,h,cnt,ans,a,b,k=1; int xx[4]={-1,1,0,0}; int yy[4]={0,0,1,-1}; bool f(int x,int y){ if(n[x][y]=='.'&&x>=1&&x<=h&&y>=1&&y<=w){ return 1; } return 0; } void dfs(int x,int y){ n[x][y]='#'; for(int i=0;i<4;i++){ int nx=x+xx[i]; int ny=y+yy[i]; if(f(nx,ny)) { k++; dfs(nx,ny); } } } int main(){ while(cin>>w>>h){ if(w==0&&h==0){ break; } for(int i=1;i<=h;i++){ for(int j=1;j<=w;j++){ cin>>n[i][j]; if(n[i][j]=='@'){ a=i;b=j; } } } k=1; dfs(a,b); cout<<k<<endl; } return 0; }
信息
- ID
- 3004
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 446
- 已通过
- 104
- 上传者