(寻找一共有多少条路)(dfs)(下面有判断能不能走的方法)
1是路0是墙,起始位置在左上角,终点在右下角,寻找一共有多少条路:)
不能穿墙,不能
斜着走
不走回头路
很基础的dfs题
其他题的墙或者路可能不一样,改一下判断就行了。
如果不需要找多少条路,只需要判断能不能走出去就把dfs函数里面的flag +=1 变成 flag = 1然后在main 函数里面加一个判断if(flag == 1) cout<<"yes"; else cout<<"no";
我真是一个大好人
#include<bits/stdc++.h>
using namespace std;
int n, m;
char a[1005][1004];
int vis[505][505];
int dx[4] = {1,0,-1,0};
int dy[4] = {0,1,0,-1};
//stack <int> stk;
int flag = 0;
void dfs(int x, int y){
if(x == n && y == m){//终点
flag += 1;
// return ; //end
}
vis[x][y] = 1;// Mark current position
for(int i = 0; i<4; i