POJ1979

1,看题。。

2,不会啊,没想法的。。。

n那个x,和y我估计你一开始都没弄清

3,还是把char用成int 。

4,

#include
#include
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=0&&ky1&&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)
            for(int j=0;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<1<<endl;
    }
    
}

xx

你可能感兴趣的:(POJ1979)