POJ1979
1,看题。。
2,不会啊,没想法的。。。
n那个x,和y我估计你一开始都没弄清
3,还是把char用成int 。
4,
#include<iostream> #include<algorithm> using namespace std; char board[1005][1005]; int mark[1005][1005]; int x,y,sx,sy; int dx[]={-1,1,0,0}; int dy[]={0,0,-1,1}; int ans; int dfs(int a,int b) { for(int i=0;i<=3;i++) { int kx=a+dx[i]; int ky=b+dy[i]; if(kx>=0&&kx<x&&ky>=0&&ky<y&&mark[kx][ky]!=1&&board[kx][ky]=='.') { ans++; mark[kx][ky]=1; dfs(kx,ky); } } } int main(){ while(cin>>x>>y&&x!=0&&y!=0) { ans=0; for(int i=0;i<y;i++) for(int j=0;j<x;j++) { cin>>board[i][j]; if(board[i][j]=='@') { sx=i; sy=j; } if(board[i][j]=='#') { mark[i][j]=1; } } dfs(sx,sy); cout<<ans+1<<endl; } }
xx