hdu 1241 Oil Deposits

#include<stdio.h>

#include<string.h>

char a[110][110];

int f[8][2]={{0,1},{0,-1},{-1,1},{-1,0},{-1,-1},{1,-1},{1,0},{1,1}};

int m,n;

int dfs(int i,int j)

{

    for(int k=0;k<8;k++)

    {

        int x=i+f[k][0];

        int y=j+f[k][1];

        if(x>=0&&y>=0&&x<m&&y<n&&a[x][y]=='@')

        {

            a[x][y]='*';

            dfs(x,y);

        }

    }

    return 0;

}

int main()

{

    int ans;

    char c;

    while(scanf("%d %d",&m,&n)!=EOF&&n!=0&&m!=0)

    {

        //memset(a,'*',sizeof(a));

        getchar();

        for(int i=0;i<m;i++)

        {

            for(int j=0;j<n;j++)

            scanf("%c",&a[i][j]);

            getchar();

        }

        ans=0;

        for(int i=0;i<m;i++)

        for(int j=0;j<n;j++)

        {

            if(a[i][j]=='@')

            {

                a[i][j]='*';

                ans++;

                dfs(i,j);

            }

        }

        printf("%d\n",ans);

    }

    return 0;

}

简单搜素:

           ~~遇到奇葩的问题(运行环境:codeblocks)

            当复制题目的测试数据时,最后一组数据,得不出正解!

            后来输出二维数组调试时,发现

hdu 1241 Oil Deposits

                                        数组每行的首位置被输入了‘\n’

                  后来,尝试手输,结果正确!!!!!!!!!!

                                   无厘头!你了解!坑坑!!!!!!

你可能感兴趣的:(HDU)