其他分享
首页 > 其他分享> > P1605迷宫

P1605迷宫

作者:互联网

一.题目描述:

 

 

 

 二.解题思路:

简单bfs过即可

三.代码实现:

 1 #include "bits/stdc++.h"
 2 int n,m,sx,sy,fx,fy;
 3 int mx,my,cnt;
 4 int mp[15][15];
 5 int bk[15][15];
 6 int mv[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};
 7 using namespace std;
 8 void dfs(int sx,int sy,int f)
 9 {
10     if(sx == fx && sy == fy){
11         cnt++;
12         return;  
13     } 
14     for(int i = 0;i < 4;i++){
15         int dx1 = sx + mv[i][0];
16         int dy1 = sy + mv[i][1];
17         if(dx1 < 1 || dx1 > n || dy1 < 1 || dy1 > m) continue;
18         if(mp[dx1][dy1] || bk[dx1][dy1]) continue;
19         bk[dx1][dy1] = 1;
20         dfs(dx1,dy1,f+1);
21         bk[dx1][dy1] = 0;
22     }
23 }
24 int main()
25 {
26     int t;
27     cin >> n >> m >> t;
28     cin >> sx >> sy >> fx >> fy;
29     for(int i = 0;i < t;i++){
30         cin >> mx >> my;
31         mp[mx][my] = 1; 
32     }
33     bk[sx][sy] = 1;
34     dfs(sx,sy,0);
35     cout << cnt;
36     return 0;
37 }

 

标签:sy,sx,int,迷宫,dy1,dx1,bk,P1605
来源: https://www.cnblogs.com/scannerkk/p/15782309.html