#include"stdio.h"
#include"stdlib.h"
#include"queue"
#include"string.h"
using namespace std;
typedef long long ll;
int dir[12][2]={
{0,2},{0,-2},{2,0},{-2,0},{1,1},{1,-1},{-1,1},{-1,-1},{1,0},{-1,0},{0,1},{0,-1}};
int n;
int visit[100+10][100+10];
char g[100+10][100+10];
int r,c;
int check(int nx,int ny)
{
return nx>=0&&nx<r&&ny>=0&&ny<c&&g[nx][ny]=='#'&&visit[nx][ny]==0;
}
void dfs(int si,int sj)
{
visit[si][sj]=1;
int i;
for(i=0;i<12;i++)
{
int nx=si+dir[i][0];
int ny=sj+dir[i][1];
if(check(nx,ny))
{
visit[nx][ny]=1;
dfs(nx,ny);
}
}
}
void bfs(int si,int sj)
{
queue<pair<int,int> >Q;
Q.push(make_pair(si,sj));
visit[si][sj]=1;
while(!Q.empty())
{
vijos 1051 BFS/DFS 连通块
最新推荐文章于 2021-03-13 10:08:16 发布