码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1979

时间:2015-06-10 17:06:04      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#define MAXN 25
using namespace std;

int r;
int c;
char _m[MAXN][MAXN];
bool mark[MAXN][MAXN];
int dir[4][2] = {0,1,0,-1,1,0,-1,0};
int DFS(int x,int y,int sum);

int main()
{
    //freopen("acm.acm","r",stdin);
    int i;
    int j;
    int place_x;
    int place_y;
    while(cin>>c>>r,c||r)
    {
        memset(mark,false,sizeof(mark));
        for(i = 0; i < r; ++ i)
        {
            for(j = 0; j < c; ++ j)
            {
                cin>>_m[i][j];
                if(_m[i][j] == @)
                {
                    place_x = i;
                    place_y = j;
                }
            }
        }
        
        int ans = DFS(place_x,place_y,0);
        cout<<ans+1<<endl;

    }
}

int DFS(int x,int y,int sum)
{
    int i;
    int j;
    int tem_i;
    int tem_j;
    for(i = 0; i < 4; ++ i)
    {
        tem_i = x+dir[i][0];
        tem_j = y+dir[i][1];
        if(tem_i >= 0 && tem_i < r && tem_j >= 0 && tem_j < c && _m[tem_i][tem_j] == . && !mark[tem_i][tem_j])
        {
            mark[tem_i][tem_j] = true;
            sum = DFS(tem_i,tem_j,sum+1);
        }
    }
    return sum;
}    

 

POJ 1979

标签:

原文地址:http://www.cnblogs.com/gavinsp/p/4566593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!