zoukankan      html  css  js  c++  java
  • hdu Oil Deposits

    Oil Deposits

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

    寻找石油,找有几片的油田。 经典的广度搜索。

    亮点

    {  

    1.map的使用,空间 + 时间双丰收。  

    2.使用了转化,把字符 变成 数字。当然对这一题来说是没有什么必要~  

    3.在使用栈的时候,进入的顺序是 x y 出的时候是 y x,这个考虑到了。  

    }

    Ok~

    #include<stdio.h>
    #include<string.h>
    char c[102][102];
    int  a[102][102],f[102][102],zhan[402],f1;
    int map[8][2]={{1,0},{1,1},{1,-1},{-1,1},{-1,-1},{-1,0},{0,1},{0,-1}};
    void bfs(int x,int y,int n,int m)
    {
        int i,x1,y1;
        zhan[++f1]=x;
        zhan[++f1]=y;
        while(f1>0)
        {
            y=zhan[f1--];
            x=zhan[f1--];
            for(i=0;i<8;i++)
            {
                x1=x+map[i][0];
                y1=y+map[i][1];
                if(x1>=1&&x1<=n&&y1>=1&&y1<=m)
                    if(a[x1][y1]==1&&f[x1][y1]==0)
                    {
                        f[x1][y1]=1;
                        zhan[++f1]=x1;
                        zhan[++f1]=y1;
                    }
            }
        }
    }
    int main()
    {
        int i,j,n,m,num;
        while(scanf("%d",&m)>0&&m)
        {
            scanf("%d",&n);
            for(i=1;i<=m;i++)
                scanf("%s",c[i]+1);
            for(i=1;i<=100;i++)
                zhan[i]=0;f1=0;num=0;
            for(i=1;i<=m;i++)
                for(j=1;j<=n;j++)
                {
                    if(c[i][j]=='*')
                        a[i][j]=0;
                    else if(c[i][j]=='@')
                        a[i][j]=1;
                    f[i][j]=0;
                }
            for(i=1;i<=m;i++)
                for(j=1;j<=n;j++)
                {
                    if(a[i][j]==1&&f[i][j]==0)
                    {
                        num++;
                        bfs(i,j,m,n);
                    }
                }
                printf("%d\n",num);
        }
        return 0;
    }
  • 相关阅读:
    奶酪真香
    规格说明书
    33
    111
    出题
    随笔 01
    我爱奶酪
    用户规格说明书
    第二次结对作业
    结对作业1
  • 原文地址:https://www.cnblogs.com/tom987690183/p/3074819.html
Copyright © 2011-2022 走看看