迷宫
程序员文章站
2022-07-13 13:55:28
...
迷宫
洛谷P1605
思路:
- 设置变量
- 标记障碍
- 找路
- 输出
- 完美结束
上代码
//0=未查找 1=障碍物 2=路
#include <iostream>
using namespace std;
int n,m,t,sx,sy,fx,fy,ans=0;
int mg[6][6];
int za [36];
void dfs (int a,int b)
{
//cout << a << " " << b << " ";
if (a>n || b>m || a<=0 || b<=0 || mg[a][b]==1 || mg[a][b]==2)
return;
if (a==fx && b==fy)
{
ans++;
return;
}
mg[a][b]=2;
dfs(a+1,b);
dfs(a,b+1);
dfs(a-1,b);
dfs(a,b-1);
mg[a][b]=0;
}
int main ()
{
cin >> n >> m >> t >> sx >> sy >> fx >> fy;
for (int i=1;i<=t;i++)
{
int x,y;
cin >> x >> y;
mg[x][y]=1;
}
dfs (sx,sy);
cout << ans << endl;
return 0;
}
此题解已AC,也欢迎指出更多优化方法~
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀
下一篇: jdk1.8切换1.7失效问题