杭电 1241 Oil Deposits 解题报告

    广搜。看代码~

#include <iostream>

using namespace std;



char s[102][102];



void visit(int a,int b)

{

    s[a][b]=0;

    int i,j;

    for(i=a-1;i<=a+1;i++)

        for(j=b-1;j<=b+1;j++)

            if(s[i][j]==-1)

                visit(i,j);

}



int main()

{

    int i,j,m,n,t;

    char str[102];

    while(cin>>m>>n && (m||n))

    {for(i=1;i<=m;i++)

            for(cin>>str,j=1;j<=n;j++)

                s[i][j]=(str[j-1]=='@'?-1:0);

        t=0;

        for(i=1;i<=m;i++)

            for(j=1;j<=n;j++)

                if(s[i][j]==-1)

                {

                    visit(i,j);

                    t++;

                }

        cout<<t<<endl;

    }

}

 

你可能感兴趣的:(OS)