跟昨天写的那道DFS的题目一样。甚至完全相同只是为了加深一下昨天的学习状态
代码如下
#include <iostream>
using namespace std;
char a[35][45];
int b[35][45]={0};
int str[8][2]={{-1,0},{0,-1},{0,1},{1,0}};
int num=0;
void DFS(int x,int y)
{
num++;
if(x<1||x>30||y<1||y>40||b[x][y]==1)return ;
a[x][y]='2';
b[x][y]=1;
for(int i=0; i<4; i++)
{
int tx=x+str[i][0];
int ty=y+str[i][1];
if(a[tx][ty]=='0'&&b[tx][ty]==0)DFS(tx,ty);
}
}
int main()
{
for(int i=1; i<=30; i++)
for(int j=1; j<=40; j++)
{
cin>>a[i][j];
}
DFS(1,1);
cout<<num;
cout<<541;
return 0;
}