Yui的狗窝
Yui的狗窝
hdoj 1312 Red and Black dfs

原题:http://acm.hdu.edu.cn/showproblem.php?pid=1312

普通的dfs题目,注意这道题先输入列数然后再输入行数,我被这个坑了= =

#include<iostream>
#include<string.h>
using namespace std;
int res,M,N;
int dir[4][2]={1,0,0,1,-1,0,0,-1};
char pal[21][21];
bool vis[21][21];
bool check(int a,int b)
{
    if(a>=1&&a<=N&&b>=1&&b<=M&&pal[a][b]!='#')
        if(!vis[a][b])
            return true;
    return false;
}
int dfs(int bx,int by)
{
    int nx,ny;
    for(int i=0;i!=4;i++)
    {
        nx=bx+dir[i][0];
        ny=by+dir[i][1];
        if(check(nx,ny))
        {
            res++;
            vis[nx][ny]=true;
            dfs(nx,ny);
        }
    }
}
int main()
{
    while(cin>>M>>N,M+N)
    {
        int bx,by;
        memset(vis,false,sizeof(vis));
        res=1;
        for(int i=1;i<=N;i++)
        {
            for(int j=1;j<=M;j++)
            {
                cin>>pal[i][j];
                if(pal[i][j]=='@')
                {
                    bx=i;
                    by=j;
                }
            }
        }
        vis[bx][by]=true;
        dfs(bx,by);
        cout<<res<<endl;
    }
}
没有标签
首页      算法训练      hdoj 1312 Red and Black dfs
https://secure.gravatar.com/avatar/d0fe7f1b17d5e9122db921e3a8cc327f?s=256&d=mm&r=g

Suzumiya, Yui

文章作者

发表评论

textsms
account_circle
email

Yui的狗窝

hdoj 1312 Red and Black dfs
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1312 普通的dfs题目,注意这道题先输入列数然后再输入行数,我被这个坑了= = #include<iostream> #include<string.h> usin…
扫描二维码继续阅读
2017-07-20


没有激活的小工具