hdu 1312 Red and Black

来源:互联网 发布:php入门视频教程下载 编辑:程序博客网 时间:2024/05/16 12:49
#include<iostream>using namespace std;int w,h,n;char z[27][27];int flag[27][27];int dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}};void dfs(int x,int y){    int xx,yy,c;    for(c=0;c<4;c++)    {        xx=x+dir[c][0];        yy=y+dir[c][1];        if(xx<0||xx>=h||yy<0||yy>=w)continue;        if(flag[xx][yy]==0)        {            flag[xx][yy]=1;            n++;            dfs(xx,yy);        }    }}int main(){    int sx,sy,i,j;    while(cin>>w>>h)    {           n=1;        if(w==0&&h==0)        break;        for(i=0;i<h;i++)        for(j=0;j<w;j++)            cin>>z[i][j];        for(i=0;i<h;i++)        for(j=0;j<w;j++)        {             if(z[i][j]=='@')            {                sx=i;                sy=j;                flag[i][j]=1;            }            else if(z[i][j]=='.')            flag[i][j]=0;            else            flag[i][j]=1;        }        dfs(sx,sy);        cout<<n<<endl;        }    return 0;}

原创粉丝点击