Google代码堵塞2016:第1A轮,BFF

时间:2017-07-13 21:53:32

标签: graph cycle depth-first-search

问题:

您是全新Little Coders幼儿园的老师。你班上有N个孩子,每个孩子都有一个从1到N不同的学生证号码。你班上的每个孩子都有一个永远的好朋友(BFF),你知道每个孩子的BFF是谁。 BFF不一定是互惠的 - 也就是说,B是A的BFF并不意味着A是B的BFF。

您明天的课程计划包括参与者必须坐在一个圆圈内的活动。您希望通过构建最大可能的孩子圈子使活动尽可能成功,这样圈子中的每个孩子都可以直接坐在他们的BFF旁边,无论是左侧还是右侧。任何不在圈内的孩子都会在没有参与的情况下观看活动。

圈子中最多的孩子是多少?

输入

输入的第一行给出了测试用例的数量,T。T测试用例如下。每个测试用例包含两行。测试用例的第一行包含一个整数N,即该类中的孩子总数。测试用例的第二行包含N个整数F1,F2,...,FN,其中Fi是具有学生ID i的孩子的BFF的学生ID号。

输出

对于每个测试用例,输出一行包含" Case #x:y",其中x是测试用例编号(从1开始),y是组中可以使用的最大孩子数被安排成一个圆形,以便圆圈中的每个孩子都坐在他或她的BFF旁边。

我的问题:代码堵塞网站上有比赛分析,但我不明白。优化在哪里发生?如果有人能够详细解释这个问题及其解决方案,那将非常有帮助。

编辑:我没有添加任何伪代码,因为我希望更好地理解问题,而且这不是编码问题。

0 个答案:

没有答案