dfs寶島探險
思路:注意此處我們把與小哼降落點上下左右相連線的陸地視為同一島嶼,0表示海洋,1~9表示陸地。計算小哼降落地所在島的面積(即有多少格仔)
#include#includeusing namespace std;
int a[51][51];//用來儲存地圖
int book[51][51],sum,n,m;
void dfs(int x,int y) ,//向右
,//向下
,//向左
};//向上
int tx,ty;
for(int k=0;k<=3;k++)
} return ;
}int main()
bfs 寶島探險
#include#includeusing namespace std;
struct note ;
int main() ;
//定義乙個用於表示走的方向的陣列
int next[4][2]=,//向右
,//向下
,//向左
};//向上
int n,m,startx,starty;
cin>>n>>m>>startx>>starty;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
//佇列初始化
int head=1;
int tail=1;
que[tail].x=startx;
que[tail].y=starty;
tail++;
book[startx][starty]=1;
int sum=1;
int tx,ty;
while(headn|| ty<1 || ty>m)
continue;
//判斷是否為障礙物 或者已經在路徑中
if(a[tx][ty]>0 && book[tx][ty]==0)
}head++;//此地方不能忘記,當乙個點拓展結束,head++才能對後面的點再進行拓展
} printf("%d",sum);
//getchar();getchar();
return 0;
}
節選自啊哈磊《啊哈!演算法》!
寶島探險 BFS DFS
include int a 10 10 0表示海洋,1 9表示陸地的海拔,降落在 6,8 處,計算出該島的面積 有多少個格仔 即從 6,8 處進行廣度優先搜尋,sum struct note int main int startx 6,starty 8 intsum 0 int next 4 2 右...
4 5 2寶島探險 BFSearch
includeusing namespace std struct note int main 定義乙個標記陣列並全部初始化為0 int a 51 51 用來儲存地圖 int i,j,k,sum,max 0,mx,my,n,m,startx,starty,tx,ty 定義乙個方向陣列 int nex...
寶島探險深度優先搜尋(著色法)
寫這一篇是為了上篇 ycb惹女朋友生氣了 上篇用到了著色法,下面主要介紹一下什麼是用深度優先搜尋實現的著色法 1.求從起點開始連線的一整塊陸地的面積,即從起點出發向四周搜尋,每搜到一塊陸地就加一,直到周圍全是海洋,並且對陸地進行染色,即標記上負數的數字。include include include...