Red and Black---DFS深度优先算法
生活随笔
收集整理的這篇文章主要介紹了
Red and Black---DFS深度优先算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊打開鏈接
因為要遍歷所有的結果,所以DFS深度優先算法
#include <iostream> #include<string.h> using namespace std; #define N 20 int m,n;int dirctions[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int visited[N][N]; char map[N][N]; int sum=0; void DFS(int x,int y) {int nx,ny;for(int i=0;i<4;i++){nx=x+dirctions[i][0];ny=y+dirctions[i][1];if(map[nx][ny]=='.'&&nx>=0&&nx<m&&ny>=0&&ny<n&&visited[nx][ny]==0){visited[nx][ny]=1;sum++;DFS(nx,ny);}}}int main() {int i,j,x,y;while(cin>>n>>m){if(m==0||n==0)break;for(i=0;i<m;i++)for(j=0;j<n;j++){cin>>map[i][j];if(map[i][j]=='@'){x=i;y=j;}}memset(visited,0,sizeof(visited));sum=1;DFS(x,y);cout<<sum<<endl;}return 0; }
總結
以上是生活随笔為你收集整理的Red and Black---DFS深度优先算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DFS与BFS的总结
- 下一篇: 回溯法解迷宫问题