acwing 1112 迷宫

简介: acwing 1112 迷宫

活动 - AcWing

注意初始点的判断:切忌

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
const int N = 110 ;
int dis[4][2] = {{-1,0},{1,0},{0,-1},{0,1}} ;
char g[N][N] ;
int n ; 
int a,b,c,d ;
bool vis[N][N] ;
bool flag  ;
void dfs(int u , int v ){
  if(u == c && d == v){
    flag = 1 ; return ;
  }
  for(int i = 0 ; i < 4 ; i++){
    int x = u + dis[i][0] , y = v + dis[i][1] ;
    if(x<0||x>=n||y<0||y>=n||vis[x][y]||g[x][y] == '#') continue ;
    if(flag) return ;
    vis[x][y] = 1 ;
    dfs(x,y) ;
  }
  return ;
}
int main(){
  int t ; cin >> t ;
  while(t --){
    cin >> n ;
    memset(vis,0,sizeof(vis)) ;flag = 0 ;
    for(int i = 0 ; i < n ;i ++) cin >> g[i] ;
    cin >> a >> b >> c >> d ;
    
    vis[a][b] = 1 ;
    dfs(a,b) ;
    if(g[a][b] == '#') flag = 0 ;
    if(a == c && c == d) flag = 1 ;
    
    if(flag) cout << "YES" << endl ;
    else cout <<"NO" << endl ;
  }
  
 
}
目录
相关文章
|
3月前
acwing 1076 迷宫问题
acwing 1076 迷宫问题
15 0
|
5月前
|
算法
LeetCode第64题最小路径和
LeetCode第64题"最小路径和"的解题方法,运用动态规划思想,通过构建一个dp数组来记录到达每个点的最小路径和,从而高效求解。
LeetCode第64题最小路径和
|
8月前
|
算法 C语言
每日一题——迷宫问题(I)
每日一题——迷宫问题(I)
|
8月前
leetcode-64:最小路径和
leetcode-64:最小路径和
54 0
|
Java
BFS广度优先遍历——Acwing 844. 走迷宫
BFS广度优先遍历——Acwing 844. 走迷宫
87 0
|
算法 定位技术 C++
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++
简单的来说,算法就是用计算机程序代码来实现数学思想的一种方法。学习算法就是为了了解它们在计算机中如何演算,以及在当今的信息时代,它们是如何在各个层面上影响我们的日常生活的,从而提高我们的逻辑思维能力和处理实际问题的能力。善用算法、巧用算法,是培养程序设计逻辑的重中之重,许多实际的问题都可用多个可行的算法来解决, 但是要从中找出最优的解决算法却是一项挑战。
582 6
【兔年之兔子走迷宫】 用一个小游戏对回溯法进行实现 | C++
蓝桥杯AcWing 题目题解 - 递归与递推
蓝桥杯AcWing 题目题解 - 递归与递推
洛谷 P1141 01迷宫
洛谷 P1141 01迷宫
85 0
洛谷P1605:迷宫
洛谷P1605:迷宫
90 0

热门文章

最新文章