hdu1241——Oil Deposits(广搜的简单应用)

这道题,求的是油矿!关键是有相邻的话,要归并为一个油矿!对此,我们对每个点进行遍历,如果这个点还没进行过bfs,且它是一个油矿,那么,对其标记为已经bfs,并对其为起点bfs,遍历过的且为油矿的点,标记为已bfs。其中,设置一个计数,用来记录有多少个点进行过bfs,即为题目所求!

#include #include #define max 105 char g[max][max]; int n,m,used[max][max]; int dir[][2]={{-1,0},{1,0},{0,-1},{0,1},{-1,-1},{-1,1},{1,-1},{1,1}}; struct node { int x,y; }; struct node queue[max*max],position,temp; void bfs(int sx,int sy) { int i,j,front=0,rear=0; rear++; queue[rear].x=sx;queue[rear].y=sy; while(front!=rear) { front++; position.x=queue[front].x;position.y=queue[front].y; for(i=0;i<8;i++) { temp.x=position.x+dir[i][0]; temp.y=position.y+dir[i][1]; if(temp.x>=0&&temp.y>=0&&temp.x

你可能感兴趣的:(hdu1241——Oil Deposits(广搜的简单应用))