小A是一个热爱旅游的人,他住在1号城市。B国有N座城市与N-1条高速公路,由高速公路连接的两座城市可以相互到达,数据保证从1号城市出发可以抵达其它所有城市。小A会依据如下方式进行旅游参观:

1.如果从当前城市出发,可以抵达没有旅游参观过的城市,那么他会前往标号最小的没有旅游参观过的城市。

2.如果从当前城市出发可以抵达的所有城市都参观过了,他会原路返回上一个城市,如果当前点是1号城市,也就是没有办法原路返回了,那么他就会结束旅行。

现在请你找出小A的旅游路线。

输入格式:

第一行输入一个整数N(N≤105)

第2行到第n行,每行输入两个整数u,v(1≤u,v≤n), 表示u号城市与v号城市之间有一条高速公路。

输出格式:

输出小A的旅游路线,每个城市之间有一个空格。请注意,末尾不能有空格,否则会报格式错误!!!!

输入样例1:

4
1 2
4 2
3 1

输出样例1:

1 2 4 2 1 3 1

形成的图如上,小A的路线为1 -> 2 -> 4 -> 2 -> 1 -> 3 -> 1

输入样例2:

5
1 2
1 3
1 4
1 5

输出样例2:

1 2 1 3 1 4 1 5 1

形成的图如上

解析:

根据题意

1.为遍历问题,使用深度优先搜索

2.使用邻接表存储

3.使用set存储数据

set存在系统自动排序的操作,和vector类似

具体用法:set的用法_HBUcs2020的博客-CSDN博客

4.dfs的应用

源码:

#include<iostream>
using namespace std;
#include<set>
#include<vector>//深度优先搜索
constexpr int MAX_SIZE=100001;
vector<set<int>>ve(MAX_SIZE);    //邻接表
vector<int>ret;
bool book[MAX_SIZE];void dfs(int id)
{ret.push_back(id);book[id]=true;for(int i:ve[id]){if(!book[i]){dfs(i);ret.push_back(id);}}
}
int main()
{int n;cin>>n;n--;while(n--){int a,b;cin>>a>>b;ve[a].insert(b);   //使用邻接表存储,两次赋值ve[b].insert(a);}dfs(1);    //1为起始位置//输出部分for(int i=0;i<ret.size();i++){if(i!=0)cout<<" ";cout<<ret[i];}return 0;
}

L2-3 小A爱旅游 (25 分)相关推荐

  1. 7-6 小黄与研究生会(25分)

    福州大学研究生院怡山的同学们为了在国家对抗新冠疫情期间献出自己的一份力量,他们决定为奋战在一线的医护人员送去了演出.小黄作为研究生协会的会长,他让每位男同学均带去了若干只猫或狗去表演节目,而小李是研究 ...

  2. 7-2 旅游规划 (25分)

    7-2 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  3. PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)

    7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  4. 7-3 旅游规划 (25 分)(C语言实现)

    有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需要输出最便 ...

  5. PTA 旅游规划(25 分)(图论, dijstra 变形)

    7-9 旅游规划(25 分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  6. PTA 07-图6 旅游规划 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/717 5-9 旅游规划   (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路 ...

  7. 案例6-1.5 旅游规划 (25 分)邻接表实现

    案例6-1.5 旅游规划 (25 分) 用邻接表实现Dijkstra算法 这题一开始做的时候没想到用邻接数组做,所以就用的链表. 总的来说还是Dijkstra算法,只不过是存储方式的问题罢了,我用了四 ...

  8. 7-图6 旅游规划 (25 分)

    7-图6 旅游规划 (25 分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干 ...

  9. 天梯赛:L2-001 紧急救援 (25 分)

    题目详情 - L2-001 紧急救援 (25 分) (pintia.cn) 题解:使用dijkstra算法就可以了,难点在于如何存储路径.我首先十分单纯的用了pair<int,int>进行 ...

最新文章

  1. 百度实名制后如何进行网站优化?
  2. 万恶之源:C语言中的隐式函数声明
  3. qt combox 向上弹出_一睹芳容!人类首次拍到活的公羊角乌贼 手臂和触须向上飞速穿过水柱...
  4. STM32 IO口输入输出模式的简洁见解
  5. 面向对象分析与设计的意义是什么
  6. 发微博/文章设计思路
  7. 8.企业安全建设入门(基于开源软件打造企业网络安全) --- 态势感知系统建设
  8. 三种刷写LEDE等软路由固件的方法
  9. atmega128 单片机 玩具电子琴 蜂鸣器 电子琴
  10. 宋体和英文字号与matlab中对照,CSS字体中英文名称对照表:如宋体对应SimSun
  11. KingbaseES 表空间加密-透明加密
  12. 使用idea构建父子类springboot项目教程,并教你启动子项目(构建项目集合)
  13. 手机sd卡恢复工具android版,SD卡数据恢复软件
  14. WordPress搭建“外贸独立站”完整操作教程
  15. 次世代游戏:科技巨头对游戏业未来的看法
  16. 第二十八课:focusin与focusout,submit,oninput事件的修复
  17. 今日头条组图下载本地,并存入MongoDB
  18. Final Cut Pro X 清除缓存方法
  19. 火山PC_sqlserver数据库的操作
  20. 多道批处理系统的调度

热门文章

  1. 对 Linux 初级、中级、高级用户非常有用的 60 个命令(转)
  2. kronecker积与hadamard积
  3. 服务器 ssd虚拟内存,有一说一:虚拟内存对比固态硬盘
  4. mfc显示html单元格,HTML/CSS中可直接输数据的表格
  5. Google hack语法
  6. kubernets eviction策略
  7. html 在线打开pdf文件怎么打开,在HTML中打开pdf文件怎么打开
  8. 小型微型计算机系统加急,小型微型计算机系统杂志
  9. java后端面试总结
  10. 去中心化应用:区块链技术概述