HDU1312 Red and Black 搜索入门

来源:互联网 发布:mysql 主主 维护 编辑:程序博客网 时间:2024/05/16 09:37

一道很简单的搜索入门题

题目大意是指把一个广场分为红黑两种颜色的砖,人只能在黑砖上移动,给你一个起点,问你最多能走多少块黑砖。

#include<iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int cont, m, n, sx,sy;char maze[21][21];int xm[4]={1,0,-1,0},ym[4]={0,1,0,-1};void dfs(int x, int y){    int tx, ty, j;    cont++;    for(int i=0;i<4;i++)    {        tx=x+xm[i];ty=y+ym[i];        if(tx<0||tx>=n||ty<0||ty>=m||maze[tx][ty]=='#')            continue;        maze[tx][ty]='#';        dfs(tx,ty);    }}int main(){    while(scanf("%d%d",&m,&n)!=EOF&&m&&n)    {        cont=0;        for(int i=0;i<n;i++)        {            getchar();            for(int j=0;j<m;j++)            {                scanf("%c",&maze[i][j]);                if(maze[i][j]=='@')                {                    sx=i;sy=j;                }            }        }        maze[sx][sy]='#';        dfs(sx,sy);        printf("%d\n",cont);    }    return 0;}


0 0
原创粉丝点击