迷宫DFS问题(二维vector, pair,模板题)

news/2025/3/14 17:03:21/

HJ43 迷宫问题

#include <bits/stdc++.h>
using namespace std;void dfs(vector<vector<int>>& map, vector<pair<int,int>>& paths, int x, int y){//记录走过,更新路径// cout << x << y << endl;map[x][y] = 1;pair<int, int> point(x, y);paths.push_back(point);int n = map.size()-1;int m = map[0].size()-1;if(x == n && y == m){//输出pathsfor(auto &x : paths){cout << "(" << x.first << "," << x.second << ")" <<endl;}return;}//上下左右搜索, 注意越界的判断要在前面if(x - 1 >=0 && map[x - 1][y] == 0){dfs(map, paths, x-1, y);}if(x + 1 <= n && map[x + 1][y] == 0){dfs(map, paths, x+1, y);}if(y - 1 >=0 && map[x][y-1] == 0){dfs(map, paths, x, y-1);}if(y + 1 <= m && map[x][y+1] == 0){dfs(map, paths, x, y + 1);}paths.pop_back();map[x][y] = 0;}int main() {int n, m;cin >> n >> m;// cout << a << b << endl;vector<vector<int>> map(n, vector<int>(m));// vector<vector<int>> walked(a, vector<int>(b, 0));for(int i = 0; i < map.size(); i++){for(int j = 0; j < map[i].size(); j++){cin >> map[i][j];}}//bfsvector<pair<int, int>> paths;// vector<pair<int, int>> res;dfs(map, paths, 0, 0);
}
// 64 位输出请用 printf("%lld")

http://www.ppmy.cn/news/1040567.html

相关文章

WebGL游戏站优化实录【myshmup.com】

myshmup.com 允许在浏览器中创建 shmup&#xff08;射击&#xff09;游戏。 你可以使用具有创意通用许可证的资源或上传自己的艺术作品和声音。 创建的游戏可以在网站上发布。 该平台不需要编码&#xff0c;游戏对象的配置是在用户界面的帮助下执行的。 后端是使用Django框架开…

音视频实时通话解决方案

1、问题提出 想要实现音视频通话,对于大部分人可能会觉得很难,但是实际上,有些事情并没有大家想的那样困难,只要功夫深,铁杵磨成针。 机缘巧合下,在业务中,我也遇到了一个业务场景需要实现音视频通话,我们不可能自己从零开始干,我本次用到的核心是WebRTC。 2、WebRT…

AMD卡启动Stable Diffusion AI绘画的方法

WindowsAMD安装法 1.安装python 3.10.6&#xff0c;在python官网上下载安装程序&#xff0c;***重要*** 在安装的第一个窗口下方勾选“将python添加到path”。 2.安装git 3.WindowsAMD使用AUTOMATIC1111的directml这一个fork&#xff0c;在这个页面的第一段&#xff1a;https:/…

一文教你快速 Cloudreve搭建云盘系统,实现随时访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

【Map】containsKey和containsValue使用案例(114)

containsKey() 是看有没有这个键&#xff0c;也就是有没有这个下标 containsValue() 是看有没有这个键值&#xff0c;也就是有没有这个值 比如 mp.add (10,20); containsKey (10) 是 true containsValue (10) 是 false 而containsValue (20) 是 true 区别就是&#xff1a; 前者…

Docker+Selenium Grid搭建自动化测试平台

安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y Create a Docker Network docker network create grid 下载镜像 hu…

18万字应急管理局智慧矿山煤矿数字化矿山技术解决方案WORD

导读&#xff1a;原文《18万字应急管理局智慧矿山煤矿数字化矿山技术解决方案WORD》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 目 录 第一章 项目概述 1.1项目…

Vue中Hottable的使用

安装 npm install handsontable handsontable/vue引入 <template><HotTable :root"root" :data"tableValue" ref"testHot" :settings"hotSettings"></HotTable> </template><script> import HotTable…