poj 1562:Oil Deposits

来源:互联网 发布:windows10视频剪辑软件 编辑:程序博客网 时间:2024/05/21 08:53

解题思路:

分流递归

#include<iostream>using namespace std;int m,n;char map[110][110];void merge(int i,int j){map[i][j] = '*';if(i-1>0 && map[i-1][j]=='@')merge(i-1,j);if(j-1>0 && map[i][j-1]=='@')merge(i,j-1);if(map[i+1][j]=='@')merge(i+1,j);if(map[i][j+1]=='@')merge(i,j+1);if(i-1>0 && j-1>0 && map[i-1][j-1]=='@')merge(i-1,j-1);if(i-1>0 && map[i-1][j+1]=='@')merge(i-1,j+1);if(j-1>0 && map[i+1][j-1]=='@')merge(i+1,j-1);if(map[i+1][j+1]=='@')merge(i+1,j+1);return;}int main(){for(int i=0;i<110;i++)for(int j=0;j<110;j++)map[i][j]='*';while(true){cin>>m>>n;if(m==0&&n==0)break;for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)cin>>map[i][j];int ans = 0;for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)if(map[i][j]=='@'){ans++;merge(i,j);}cout<<ans<<endl;}return 0;}


0 0
原创粉丝点击