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