标签:
#include<iostream> using namespace std; int book[51][51]={0}; int a[51][51]; int sum; int n,m; void dfs(int x,int y) { int tx,ty; int k; //定义一个方向的数组 int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; //枚举4个方向 for(k=0;k<4;k++) { //计算下一步的坐标 tx=x+next[k][0]; ty=y+next[k][1]; //判断是否越界 if(tx<1||tx>n||ty<1||ty>m) { continue; } //判断是否是陆地 if(a[tx][ty]>0&&book[tx][ty]==0) { sum++; book[tx][ty]=1;//标记这个点已经走过 dfs(tx,ty);//开始尝试下一个点 } } return ; } int main() { int i,j; int startx,starty; cin>>n>>m>>startx>>starty; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cin>>a[i][j]; } } book[startx][starty]=1; sum=1; //从降落的位置开始 dfs(startx,starty); cout<<sum<<endl; return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/ingnight/article/details/47618297