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

posted @ 2020-02-11 18:03  北月真好  阅读(191)  评论(0编辑  收藏  举报