题库 C++/C语言题库 题目列表 试题名称:⼤量的⼯作沟通问题描述某公司有 &n...
问答题

试题名称:⼤量的⼯作沟通

问题描述

某公司有    N   名员⼯,编号从  0   ⾄   N-1 。其中,除了  0   号员⼯是⽼板,其余每名员⼯都有⼀个直接领导。我们假设 编号为 i 的员⼯的直接领导是  fi   。 

该公司有严格的管理制度,每位员⼯只能受到本⼈或直接领导或间接领导的管理。具体来说,规定员⼯  x   可以管理 员⼯ y,当且仅当  x=y          ,或   x=fy    ,或 x    可以管理 fy     。特别地,0号员⼯⽼板只能⾃我管理,⽆法由其他任何员⼯ 管理。

现在,有⼀些同事要开展合作,他们希望找到⼀位同事来主持这场合作,这位同事必须能够管理参与合作的所有同 事。如果有多名满⾜这⼀条件的员⼯,他们希望找到编号最⼤的员⼯。你能帮帮他们吗?

输入描述

第⼀⾏⼀个整数  N    ,表⽰员⼯的数量。

第⼆⾏   N-1 个⽤空格隔开的正整数,依次为  f1,f2,...fN-1 。 

第三⾏⼀个整数  Q   ,表⽰共有  Q  场合作需要安排。

接下来  Q  ⾏,每⾏描述⼀场合作:开头是⼀个整数 m(   ),表⽰参与本次合作的员⼯数量;接着是 m个整数,依次表⽰参与本次合作的员⼯编号(保证编号合法且不重复)。

保证公司结构合法,即不存在任意⼀名员⼯,其本⼈是⾃⼰的直接或间接领导。

输出描述

输出m 行,每行一个整数,依次为每场合作的主持人选。

样例输入1

1      5
2      0 0 2 2 
3      3
4      2 3 4 
5      3 2 3 4 
6      2 14

样例输出 1

1      2
2      2 
3      0

样例解释1

对于第⼀场合作,员⼯ 3,4 有共同领导2,可以主持合作。 

对于第二场合作,员工2 本人即可以管理所有参与者。 

对于第三场合作,只有0老板才能管理所有参与者。

题目信息
C++语言等级考试真题 2023年 八级 编程题
-
正确率
0
评论
192
点击