其他分享
首页 > 其他分享> > Oil Deposits

Oil Deposits

作者:互联网

Problem Description Input Output Sample Input  
题意:'@'代表油袋,'*'代表没有油;油袋相连(水平,垂直,斜对角线相连)的表示一个油藏。问给你一个m*n大小的矩阵有多少个油藏? 1.DFS #include<cstdio> #include<iostream> #include<algorithm> using namespace std; const int N=105; int n,m; char a[N][N]; void dfs(int x,int y) {     a[x][y]='*';     for(int i=-1; i<=1; i++)         for(int j=-1; j<=1; j++)         {             int nx=x+i,ny=y+j;             if(a[nx][ny]=='@'&&nx>=0&&nx<m&&ny>=0&&ny<n)                 dfs(nx,ny);         }     return; } int main() {     while(~scanf("%d%d",&m,&n)&&(m||n))     {         int i,j,ans=0;         for(i=0; i<m; i++)             scanf("%s",a[i]);         for(i=0; i<m; i++)             for(j=0; j<n; j++)             {                 if(a[i][j]=='@')                 {                     dfs(i,j);                     ans++;                 }             }         printf("%d\n",ans);     }     return 0; }   #include<cstdio> #include<queue> #include<algorithm> using namespace std; int n,m; char a[105][105]; int dx[]={1,1,1,0,0,-1,-1,-1},dy[]={0,1,-1,-1,1,-1,1,0}; struct node {     int xx;     int yy; }; void bfs(int x,int y) {     node now,next;     queue<node>q;     now.xx=x;     now.yy=y;     q.push(now);     while(!q.empty())     {         now=q.front();         q.pop();         for(int i=0; i<8; i++)         {             int nx=now.xx+dx[i],ny=now.yy+dy[i];             if(nx>=0&&nx<m&&ny>=0&&ny<n&&a[nx][ny]=='@')             {                 a[nx][ny]='*';                 next.xx=nx;                 next.yy=ny;                 q.push(next);             }         }     }     return; } int main() {     while(scanf("%d%d",&m,&n)&&(m||n))     {         int i,j,ans=0;         for(i=0; i<m; i++)             scanf("%s",a[i]);         for(i=0; i<m; i++)             for(j=0; j<n; j++)             {                 if(a[i][j]=='@')                 {                     bfs(i,j);                     ans++;                 }             }         printf("%d\n",ans);     }     return 0; }

标签:now,int,Deposits,char,Oil,&&,include,105
来源: https://blog.51cto.com/u_13696685/2989022