博客
关于我
地下迷宫探索(后两个测试点无法通过?这里有你想要的答案)
阅读量:268 次
发布时间:2019-03-03

本文共 664 字,大约阅读时间需要 2 分钟。

地下迷宫探索

题目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

答案

#include
#include
#include
#include
using namespace std;vector
vec[1001],t;int vis[1001],cnt=0;void dfs(int tmp){ if(vis[tmp]==0) { vis[tmp]=1; t.push_back(tmp); cnt++; } for(int i=0;i
>n>>m>>start; while(m--) { int x,y; cin>>x>>y; vec[x].push_back(y); vec[y].push_back(x); } for(int i=1;i<=n;i++) sort(vec[i].begin(),vec[i].end()); dfs(start); int flag=0; for(int i=0;i

总结

本题使用深度遍历,同时使用了vector向量组存储相关信息

如果你是在深度遍历后将输出的结果反向输出,那就无法通过后两个节点。

在我们仔细审题后,发现这道题的本意是回溯,那么我们正好可以在递归中实现回溯,即在每个dfs后,将目标值压入向量t中

代码如下:

dfs(vec[tmp][i]);t.push_back(tmp);

转载地址:http://hpfl.baihongyu.com/

你可能感兴趣的文章
Firefox 69 已可在 Fedora 中获取 | Linux 中国
查看>>
如何在 Linux Mint 中更换主题 | Linux 中国
查看>>
Linux 中国徽标征集活动结果 | Linux 中国
查看>>
NVIDIA 的云游戏服务 GeForce NOW 无耻地忽略了Linux | Linux 中国
查看>>
黑吃黑——黑客组织通过黑客工具攻击其他黑客 | 每日安全资讯
查看>>
在 Python 调试过程中设置不中断的断点 | Linux 中国
查看>>
如何在 Bash 中编写函数 | Linux 中国
查看>>
AI 系统向自动化编码迈进 | Linux 中国
查看>>
使用 Jupyter Notebooks 构建一个远程管理控制台 | Linux 中国
查看>>
微软将举办 Azure 开放日活动,主讲 Linux 开源软件 | 新闻拍一拍
查看>>
使用开源可视化工具来理解你的 Python 代码 | Linux 中国
查看>>
【2021 ECUG Con】聚势而来,与你相约花开时
查看>>
硬核观察 | 有人在比特币骗局中损失了 10 个比特币
查看>>
初识 Python: global 关键字 | Linux 中国
查看>>
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序 | Linux 中国
查看>>
基于日出和日落时间自动切换到明/暗 Gtk 主题 | Linux 中国
查看>>
FreeDOS 的简单介绍 | Linux 中国
查看>>
查看一个归档或压缩文件的内容而无需解压它 | Linux 中国
查看>>
极致技术探索:显卡工作原理 | Linux 中国
查看>>
如何在 Linux 中不使用功能键在 TTY 之间切换 | Linux 中国
查看>>