zoukankan      html  css  js  c++  java
  • 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
    ",cnt);
            }
            return 0;
    }
    

      

  • 相关阅读:
    Java实现分页
    研发技能列表
    shell 函数
    养生
    再谈创新
    写代码注意事项
    排查问题方法
    简历撰写
    jenkins
    架构
  • 原文地址:https://www.cnblogs.com/xuesu/p/4338193.html
Copyright © 2011-2022 走看看