HDU 1241 Oil Deposits bfs 难度:0

http://acm.hdu.edu.cn/showproblem.php?pid=1241

对每个还未访问的点bfs,到达的点都标为一块,最后统计有多少块即可

#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int maxn=101;
const int inf=0x3fffffff;
char maz[maxn][maxn];
int id[maxn][maxn];
int n,m,cnt;

queue<int> que;
const int dx[8]={0,0,1,-1,1,1,-1,-1};
const int dy[8]={1,-1,0,0,1,-1,1,-1};
bool in(int x,int y){
        return x>=0&&x<n&&y>=0&&y<m;
}
void bfs(int sx,int sy){
        while(!que.empty())que.pop();
        id[sx][sy]=++cnt;
        que.push(sx*maxn+sy);
        while(!que.empty()){
                int x=que.front()/maxn,y=que.front()%maxn;que.pop();
                for(int i=0;i<8;i++){
                        int tx=x+dx[i],ty=y+dy[i];
                        if(in(tx,ty)&&maz[tx][ty]!=‘*‘&&id[tx][ty]==-1){
                                id[tx][ty]=id[x][y];
                                que.push(tx*maxn+ty);
                        }
                }
        }
}

int main(){
        while(scanf("%d%d",&n,&m)==2&&n){
                cnt=0;
                for(int i=0;i<n;i++){
                        scanf("%s",maz[i]);
                }
                for(int i=0;i<n;i++){
                        for(int j=0;j<m;j++){
                                id[i][j]=-1;
                        }
                }
                for(int i=0;i<n;i++){
                        for(int j=0;j<m;j++){
                                if(maz[i][j]!=‘*‘&&id[i][j]==-1){
                                        bfs(i,j);
                                }
                        }
                }

                printf("%d\n",cnt);
        }
        return 0;
}

  

时间: 2024-10-02 21:28:43

HDU 1241 Oil Deposits bfs 难度:0的相关文章

PKU 1562/HDU 1241 Oil Deposits(原油有多少块区域---BFS,DFS)

Oil Deposits Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region o

HDU 1241 Oil Deposits(石油储藏)

p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-size: 10.5000pt } h1 { margin-top: 5.0000pt; margin-bottom: 5.0000pt; text-align: center; font-family: 宋体; color: rgb(26,92,200); font-weight: bold; fo

HDU 1241 Oil Deposits --- 入门DFS

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1241 /* HDU 1241 Oil Deposits --- 入门DFS */ #include <cstdio> int m, n; //n行m列 char mapp[105][105]; /* 将和i,j同处于一个连通块的字符标记出来 */ void dfs(int i, int j){ if (i < 0 || j < 0 || i >= n || j >= m

DFS(连通块) HDU 1241 Oil Deposits

题目传送门 1 /* 2 DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 3 */ 4 /************************************************ 5 Author :Running_Time 6 Created Time :2015-8-4 10:11:11 7 File Name :HDOJ_1241.cpp 8 ************************************************/ 9 10

hdu 1241 Oil Deposits (一次dfs搞定有某有)

1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 char map[105][105]; 7 8 int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1}; 9 int n, m; 10 int ans; 11 12

hdu 1241 Oil Deposits(DFS求连通块)

HDU 1241  Oil Deposits L -DFS Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rec

hdu 1241 Oil Deposits

题意:用广度优先搜索 //c++写输入时有问题 1)这个是深搜 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> /* map数组是用来装字符的 n,m提高作用域,使訪问的权限变高 dir方便广度优先搜索,由于要搜索8个方向.这样做最方便 */ char map[101][101]; int n,m; int dir[8][2]={{-1,-1},{0,-

HDU 1241 Oil Deposits(DFS)

题目链接 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous squa

hdu 1241 Oil Deposits(八方向简单深搜,对新手挺经典)

Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12461 Accepted Submission(s): 7245 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground