PTA 7-2 深入虎穴 (30 分)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。
内线告诉他,情报就藏在迷宫的最深处。但是这个迷宫太大了,他需要你的帮助 —— 请编程帮他找出距离入口最远的那扇门。
输入格式:
输入首先在一行中给出正整数 N(<105),是门的数量。最后 N 行,第 i 行(1≤i≤N)按以下格式描述编号为 i 的那扇门背后能通向的门:
K D[1] D[2] ... D[K]
其中 K
是通道的数量,其后是每扇门的编号。
输出格式:
在一行中输出距离入口最远的那扇门的编号。题目保证这样的结果是唯一的。
输入样例:
13
3 2 3 4
2 5 6
1 7
1 8
1 9
0
2 11 10
1 13
0
0
1 12
0
0
输出样例:12
解题思路:这道题就是说给你N个数,代表N个结点,第i行,每行有K个数;让你找树深度最深的那个结点;题目注意要先找出根,其实题目没出现的数字就是根,所以我们可以把孩子都标记起来,没有被标记的就是根;我们可以先用一个vector把孩子都放在共同的父亲上,然后孩子的深度都比父亲多一;代码如下:
1 #include<iostream> 2 #include<vector> 3 #include<queue> 4 using namespace std; 5 6 int N; 7 int K; 8 int tmp; 9 bool vis[100005];//用来标记点是否出现过,方便找出根结点; 10 vector<int>v[100005]; //动态数组,将相同父亲的孩子放入父亲的vector中; 11 int depth[100005]; //用来记录每个数字的深度; 12 int root; 13 int tp; 14 int maxnn = -1; //用来找深度最大的; 15 int ans = -1; //用来记录答案; 16 int main() 17 { 18 queue<int>q; 19 scanf("%d",&N); 20 for(int i = 1 ; i <= N ;i++) 21 { 22 scanf("%d",&K); 23 while(K--) 24 { 25 scanf("%d",&tmp); 26 v[i].push_back(tmp); //将孩子结点放入父亲的数组中; 27 vis[tmp] = 1; //标记该点是孩子结点; 28 } 29 } 30 31 for(int j = 1 ; j <= N ;j++) 32 { 33 if(vis[j]!=1) 34 { 35 root = j ; //找到根结点; 36 } 37 } 38 q.push(root); //将根结点入队; 39 depth[root] = 1; //根的深度为1; 40 while(!q.empty()) 41 { 42 tp = q.front(); 43 q.pop(); 44 for(int j = 0 ; j < v[tp].size();j++) 45 { 46 depth[v[tp][j]] = depth[tp]+1; //每个孩子的深度比父亲多一; 47 q.push(v[tp][j]); //将孩子入队,重复过程; 48 } 49 } 50 51 for(int j = 1 ; j <= N ;j++) 52 { 53 if(depth[j]>maxnn) 54 { 55 maxnn = depth[j]; //找最大深度的; 56 ans = j; //找到答案; 57 } 58 } 59 printf("%d\n",ans); 60 61 return 0; 62 }
转载于:https://www.cnblogs.com/yewanting/p/10753066.html
PTA 7-2 深入虎穴 (30 分)相关推荐
- PTA:7-102 喊山 (30分)---解析(bfs广度优先搜索,vector)
7-102 喊山 (30分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的& ...
- PTA 7-3 地铁一日游 (30 分)
森森喜欢坐地铁.这个假期,他终于来到了传说中的地铁之城--魔都,打算好好过一把坐地铁的瘾! 魔都地铁的计价规则是:起步价 2 元,出发站与到达站的最短距离(即计费距离)每 K 公里增加 1 元车费. ...
- PTA 计算年龄问题 (30 分)
定义一个Birthday类,其成员变量有3个整形变量(出生的年月日):year,month,day:提供构造方法对这3个成员变量进行初始化:提供成员变量的get.set方法:成员函数有getAge() ...
- PTA:7-10 深入虎穴 (25 分)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条 ...
- PTA L3-031 千手观音 (30 分)
PTA L3-031 千手观音 (30 分) 人类喜欢用 10 进制,大概是因为人类有一双手 10 根手指用于计数.于是在千手观音的世界里,数字都是 10 000 进制的,因为每位观音有 1 000 ...
- PTA 直捣黄龙(30分)
直捣黄龙 (30 分) 本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营.当这样的路径不唯一时,要求 ...
- PTA 直捣黄龙 (30 分)
7-13 直捣黄龙 (30 分) 本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营.当这样的路径不唯 ...
- C++学习之路 | PTA(甲级)—— 1099 Build A Binary Search Tree (30分)(带注释)(精简)
1099 Build A Binary Search Tree (30分) A Binary Search Tree (BST) is recursively defined as a binary ...
- C++学习之路 | PTA(甲级)—— 1064 Complete Binary Search Tree (30分)(带注释)(精简)
1064 Complete Binary Search Tree (30分) A Binary Search Tree (BST) is recursively defined as a binary ...
- C++学习之路 | PTA(天梯赛)—— L3-003 社交集群 (30分) (带注释) (并查集) (精简)
L3-003 社交集群 (30分) 当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个"社交集群"是指部分兴趣爱好相同的人的集 ...
最新文章
- boos里的AHCI RAID_安徒恩Raid删除,安徒恩讨伐战上线,详细攻略快速看,成为新的摸金圣地...
- 海生《我不是你的玩偶》关注颇高
- java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现
- php nfs,NFS(网络文件系统)服务器简单解析
- Java Streams,第 2 部分: 使用流执行聚合
- C# using的用法
- 51芯片4*4列阵按键c语言程序,单片机城中社稷.doc
- Android 网络异常
- 文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit
- MaxCompute Spark 使用和常见问题
- Python 3.8.0 发布!
- c#打开数据库连接池的工作机制_它是谁?一个比 c3p0 快 200 倍的数据库连接池!...
- Windows Store App 图像
- 关于WebBrowser(浏览器)控件的调用
- VectorDraw机械制图,VectorDraw图形引擎crack版
- Win10 LTSB/LTSC安装微软商店/Microsoft store
- 三进制计算机_三进制会取代二进制计算机吗?
- Python 重载向量加法运算符 +
- 在HTML中lt;是什么意思?
- 使用DiskMan(DiskGen)恢复被删除的分区
热门文章
- mysql6.1 交叉编译_Armbian系统-mysql-connector-c++-1.1.8版本-交叉编译-安装
- Python入门--函数参数的定义,以及print输出格式的设置
- vue异步数据 报错_VUE 异步数据传递给 component props 的问题
- java 判断是否为cst格式_Java判断文件编码格式
- 7.王道考研数据结构-队列
- 链路状态路由选择LS
- NYOJ 82:迷宫寻宝(一)(BFS)
- javascript手机号码、电子邮件正则表达式 一种解决方案
- Rabbitmq基本原理和架构
- jquery中serialize()序列化函数