poj1979 -- Red and Black

题目链接

这题是求相连通的黑瓷砖的个数,相连通是指四联通,即上下左右,起始位置为@所在位置,从起始位置dfs即可,具体代码如下:

#include 
#include 
#include 
using namespace std;

int m,n;    //列,行数
char maze[30][30];  //迷宫
int visit[30][30];  //0未访问,1访问过
int sr,sc;  //起始行列值
int cnt;    //联通黑瓷砖个数
int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};

void dfs(int r,int c)
{
    for(int i=0;i<4;i++)
    {
        int nextr=r+dir[i][0];
        int nextc=c+dir[i][1];
        if(nextr>=0&&nextr=0&&nextc>m>>n&&m&&n)
    {
        getchar();
        cnt=0;
        memset(visit,0,sizeof(visit));
        for(int i=0;i

你可能感兴趣的:(POJ,DFS)