博客
关于我
地下迷宫探索(后两个测试点无法通过?这里有你想要的答案)
阅读量:266 次
发布时间: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/

你可能感兴趣的文章
初识 Python: global 关键字 | Linux 中国
查看>>
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序 | Linux 中国
查看>>
基于日出和日落时间自动切换到明/暗 Gtk 主题 | Linux 中国
查看>>
FreeDOS 的简单介绍 | Linux 中国
查看>>
查看一个归档或压缩文件的内容而无需解压它 | Linux 中国
查看>>
极致技术探索:显卡工作原理 | Linux 中国
查看>>
如何在 Linux 中不使用功能键在 TTY 之间切换 | Linux 中国
查看>>
如何在 Ubuntu 系统中添加一个辅助 IP 地址 | Linux 中国
查看>>
LCTT 2018:五周年纪念日 | Linux 中国
查看>>
【每日安全资讯】安全研究员发现39万个网站因公开的.git repo处于危险中
查看>>
如何在 Ubuntu 16.04 强制 APT 包管理器使用 IPv4 | Linux 中国
查看>>
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
查看>>
怎样解决 “sub process usr bin dpkg returned an error code 1” 错误
查看>>
Bat:一种具有语法高亮和 Git 集成的 Cat 类命令 | Linux 中国
查看>>
在 Linux 上操作目录 | Linux 中国
查看>>
如何禁用 Ubuntu 服务器中终端欢迎消息中的广告 | Linux 中国
查看>>
【每日安全资讯】一个让你用微信支付的勒索病毒 一场黑吃黑的表演
查看>>
极客漫画:TCP 兄弟 | Linux 中国
查看>>
认识存储:块、文件和对象 | Linux 中国
查看>>
用于游戏开发的图形和音乐工具 | Linux 中国
查看>>