著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。

内线告诉他,情报就藏在迷宫的最深处。但是这个迷宫太大了,他需要你的帮助 —— 请编程帮他找出距离入口最远的那扇门。

输入格式:

输入首先在一行中给出正整数 N(<10​5​​),是门的数量。最后 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把孩子都放在共同的父亲上,
然后孩子的深度都比父亲多一;代码如下:
 #include<iostream>
#include<vector>
#include<queue>
using namespace std; int N;
int K;
int tmp;
bool vis[];//用来标记点是否出现过,方便找出根结点;
vector<int>v[]; //动态数组,将相同父亲的孩子放入父亲的vector中;
int depth[]; //用来记录每个数字的深度;
int root;
int tp;
int maxnn = -; //用来找深度最大的;
int ans = -; //用来记录答案;
int main()
{
queue<int>q;
scanf("%d",&N);
for(int i = ; i <= N ;i++)
{
scanf("%d",&K);
while(K--)
{
scanf("%d",&tmp);
v[i].push_back(tmp); //将孩子结点放入父亲的数组中;
vis[tmp] = ; //标记该点是孩子结点;
}
} for(int j = ; j <= N ;j++)
{
if(vis[j]!=)
{
root = j ; //找到根结点;
}
}
q.push(root); //将根结点入队;
depth[root] = ; //根的深度为1;
while(!q.empty())
{
tp = q.front();
q.pop();
for(int j = ; j < v[tp].size();j++)
{
depth[v[tp][j]] = depth[tp]+; //每个孩子的深度比父亲多一;
q.push(v[tp][j]); //将孩子入队,重复过程;
}
} for(int j = ; j <= N ;j++)
{
if(depth[j]>maxnn)
{
maxnn = depth[j]; //找最大深度的;
ans = j; //找到答案;
}
}
printf("%d\n",ans); return ;
}


PTA 7-2 深入虎穴 (30 分)的更多相关文章

  1. PTA 05-树9 Huffman Codes (30分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/671 5-9 Huffman Codes   (30分) In 1953, David ...

  2. PTA 词频统计(30 分)

    词频统计(30 分) 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词. 所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留 ...

  3. PTA 08-图9 关键活动 (30分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/719 假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它 ...

  4. PTA 7-3 编辑距离问题 (30 分)

    一.实践题目 设A和B是2个字符串.要用最少的字符操作将字符串A转换为字符串B.这里所说的字符操作包括: ()删除一个字符: ()插入一个字符: ()将一个字符改为另一个字符. 将字符串A变换为字符串 ...

  5. PTA 社交网络图中结点的“重要性”计算(30 分)

    7-12 社交网络图中结点的“重要性”计算(30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互 ...

  6. 二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历

    二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历   二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则 ...

  7. PTA 11-散列4 Hard Version (30分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/680 5-18 Hashing - Hard Version   (30分) Given ...

  8. PTA 04-树6 Complete Binary Search Tree (30分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/669 5-7 Complete Binary Search Tree   (30分) A ...

  9. PTA数据结构与算法题目集(中文) 7-36 社交网络图中结点的“重要性”计算 (30 分)

    PTA数据结构与算法题目集(中文)  7-36 社交网络图中结点的“重要性”计算 (30 分) 7-36 社交网络图中结点的“重要性”计算 (30 分)   在社交网络中,个人或单位(结点)之间通过某 ...

  10. PTA 7-3 畅通工程之最低成本建设问题 (30分)

    PTA 7-3 畅通工程之最低成本建设问题 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括 ...

随机推荐

  1. Linux运维基础入门(一)网络基础知识梳理01

    一,计算机网络参考模型 1.1 OSI七层模型 1)物理层 主要功能是完成相邻节点之间原始比特流的传输.(网卡等) 物理层协议关心的典型问题是使用什么样的物理信号来表示数据1和0:持续的时间有多长:数 ...

  2. Excel VBA入门(三) 流程控制1-条件选择

    VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① ...

  3. NoSuchBeanDefinitionException:No qualifying bean of type found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.

    报错如下: NoSuchBeanDefinitionException:No qualifying bean of type   found for dependency: expected at l ...

  4. book pile SGU - 271

    有n本书从上到下摞在一起,有两种操作.ADD(C)表示把一本新书C放到这一摞书的最顶上,ROTATE表示将前K本书进行反转.在一系列操作后输出最后书的顺序 分析: 当时听别人讲这个题的时候很懵逼,后来 ...

  5. 在 CentOS 下源码安装 Xen

    http://www.vpsee.com/2010/04/install-xen-on-centos-from-source/ 在 CentOS 源码编译安装 Xen 的过程和在 Debian 上编译 ...

  6. xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream

    本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0 ...

  7. ubuntu14.04 64位安装 g2o

    参考链接:http://blog.csdn.net/jiujiu932/article/details/52248577 http://www.cnblogs.com/gaoxiang12/p/473 ...

  8. ICO流程,casestudy

    https://medium.com/crypto-oracle/ico-analysis-framework-nex-case-study-bf65586b4b32

  9. loadrunner中回放log看不到参数替代后具体数值

    1.打开run-time settings,找到 log - always send messages,选择 extended log--parameter substitution.

  10. 移动端flexbox的小tips

    我也是看了腾讯isux的博客,解答了我关于flexbox一个很长时间的疑惑,就是flex布局在安卓手机会出现内容长短不同导致不均分的现象. 具体的内容可以去看腾讯isux的博客,地址在这:https: ...