宝岛探险

来源:互联网 发布:linux cp 文件夹结构 编辑:程序博客网 时间:2024/07/24 01:12

dfs问题,宝岛探险,求出所在岛屿的面积

#include<iostream>using namespace std;const int maxn=200;int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//右,下,左,上int map[maxn][maxn];//宝岛地图 int flag[maxn][maxn]; //标记int sx,sy;//开始坐标int area=1;//面积 int n,m;void dfs(int x,int y){int tx,ty;for(int k=0;k<4;k++)//枚举四个方向 {tx=x+next[k][0];ty=y+next[k][1];//检查是否越界if(tx<0||tx>n||ty<0||ty>m) continue;//判断是否是陆地if(map[tx][ty]>0&&!flag[tx][ty]) {area++;flag[tx][ty]=1;dfs(tx,ty);}}}int main(){freopen("宝岛in.txt", "r", stdin);freopen("宝岛out.txt", "w", stdout);cin>>n>>m>>sx>>sy;for(int i=0;i<n;i++)for(int j=0;j<m;j++) cin>>map[i][j];flag[sx][sy]=1;dfs(sx,sy);cout<<area;fclose(stdin);fclose(stdout);return 0;}


0 0
原创粉丝点击