hdu (4414)(BFS+DFS)

/*暴力DFS+BFS,先DFS求出中心点,中心点的条件是它周围有四个点
然后BFS判断是否为十字架,判断条件:'#'数量=4*层数+1
自制测试样例:
5
o#oo#
####o
o#o#o
oo###
ooo#o
5
o#oo#
###oo
o#o#o
oo###
ooo#o
5
oo#oo
oo#oo
#####
oo#oo
oo#oo
3
o#o
###
o#o


0
2
1
1
*/
#include
#include
char grid[70][70];
int vis[70][70],midx[70],midy[70],top;
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
int N,acquire;
typedef struct node
{
    int x,y;
}Node;
Node queue[30000];    
int BFS(int x,int y)
{
    int rear,front;
    int nx,ny,ox,oy;
    int i,j,k,cnt,step=4;/*step为层数*/
    cnt=rear=front=0;
    queue[rear].x=x;
    queue[rear++].y=y;
    vis[x][y]=1;
    while(front=0&&nx=0&&ny=0&&nx=0&&ny


你可能感兴趣的:(hdu,搜索)