题目背景

给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。

输入格式

第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。

输出格式

给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。

输入

2 2 1
1 1 2 2
1 2

输出

1

#include<iostream>
using namespace std;
int n,m,t,sx,sy,fx,fy,ans;
int barrier[6][6]={0};//barrier为1代表可以走
int flag[6][6]={0};//flag为1代表已经走过
int walkx[4]={0,0,1,-1};
int walky[4]={1,-1,0,0};void dfs(int x,int y)
{if(x==fx&&y==fy)//到达终点{ans++;return ;}else{for(int i=0;i<4;i++)if(flag[x+walkx[i]][y+walky[i]]==0&&barrier[x+walkx[i]][y+walky[i]]==1)//没有走过且没有障碍{flag[x][y]=1;dfs(x+walkx[i],y+walky[i]);flag[x][y] = 0;  //回溯 } }
}
int main()
{cin>>n>>m>>t>>sx>>sy>>fx>>fy;int a,b;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)barrier[i][j]=1; for(int i=0;i<t;i++){cin>>a>>b;barrier[a][b]=0;//输入障碍 }dfs(sx,sy);cout<<ans;return 0;
}

dfs模板

int(void) dfs(int k)
{if(到达目的地){输出}else{根据题意模拟等dfs(k+1);回溯(保存当前结果之前的状态)}
}

DFS其他问题: P1219 八皇后

洛谷 | P1605 迷宫(DFS) C++相关推荐

  1. dfs 洛谷 P1605 迷宫

    洛谷 P1605 迷宫 题目: 链接 https://www.luogu.com.cn/problem/P1605 思路:从出发点点出发dfs搜索每一次可以到达终点的路径,边界条件为不能走障碍物(在输 ...

  2. 【洛谷P1605 迷宫】

    P1605 迷宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这是一道很简单的迷宫搜索题,适合搜索初学者练习. 思路 用mp数组表示迷宫地图 用vis数组表示"打标记& ...

  3. 洛谷—— P1605 迷宫

    P1605 迷宫 题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在 ...

  4. 洛谷P1605 迷宫(dfs) 题解

    题目来源: 点击打开链接 题目描述: 题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标 ...

  5. 洛谷 P1605 迷宫(DFS模板)

    题目 https://www.luogu.com.cn/problem/P1605 思路 写一个DFS模板 #include<iostream> #include<algorithm ...

  6. 洛谷——P1605 迷宫

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  7. (Java实现) 洛谷 P1605 迷宫

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  8. 洛谷P1605 迷宫 纯C语言题解

    #include<stdio.h> #include<stdlib.h> int cnt = 0;//记录有多少条路线,初始为0 int N,M,T;//N行 M列 T个障碍 ...

  9. 深度优先搜索——迷宫(洛谷 P1605)

    题目选自洛谷P1605 题目是非常经典以及简单的DFS题目 这里给出模板 int dfs(int t) {if(满足输出条件){输出解;}for(int i=1;i<=尝试方法数;i++)if( ...

最新文章

  1. 用PULL解析器解析XML文件
  2. JNI的native代码中打印日志到eclipse的logcat中
  3. 码农很多,但程序员并不多......
  4. TF之LSTM:利用LSTM算法对mnist手写数字图片数据集(TF函数自带)训练、评估(偶尔100%准确度,交叉熵验证)
  5. 来电掉队,共享充电宝或许只是外表光鲜
  6. Codeforces Round #552 (Div. 3)D、E题解
  7. linux脚本done报错,linux – 如何在shell脚本中处理错误/异常?
  8. c mysql bulk,MySqlBulkLoader批量上传遇到的问题和解决方法
  9. CentOS 网络基础:(1)HostName和DNS
  10. 力扣-872 叶子相似的树
  11. Java毕设项目航空订票系统火车票订购系统(2021最新)
  12. 吉他效果器-削波失真
  13. word图片与文字居中对齐
  14. Go语言——没有对象的面向对象编程
  15. layui select 选中改变字体颜色 正常为绿色,不正常为红色
  16. Springboot父子工程搭建到部署
  17. 实际上Ubuntu在你最起初配置完系统以后,是无法访问root类型的操作的(下面详解),ubuntu系统网络设置方法(图文)
  18. Collaborative Filtering 协同过滤小结 part-1:CF背景
  19. Unknown database ‘ ‘
  20. 微软浏览器图标变空白,解决方案,亲测有效!

热门文章

  1. 知道世界越大,就会觉得你越小
  2. 使用WebService进行异步通信
  3. Laravel Cache 的缓存文件在到期后是否会自动删除
  4. 多个if和一个ifelse的区别
  5. mysql怎么从1开始递增
  6. keilc error C183: unmodifiable lvalue (编程时要注意啦)
  7. 【Java从0到架构师】SSM 整合(XML、纯注解)
  8. 【实习之T100开发】T100 单档程序开发(1)开发流程
  9. 小程序入门学习11--云开发04
  10. django进阶05中间件