B. 这合理吗?
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
B. 这合理吗?
上完搜索课,老师给大家出了一道题,给定一棵个点的有根树,根为号点,现在要求同学们对它进行 BFS,并输出 BFS序。
机智的小聪当即表示“这么大一棵树,不会真有人去验证结果的正确性吧,不会吧,不会吧”,当即交了一个随机排列,觉得自己不会被发现。然而,老师决定给小聪一个惊喜惊吓,他找到你这个编程高手,希望你可以对于任意给出的一个排列,判断它是不是这棵树的合理 BFS序。
但你和小聪是好朋友,你可不想让小聪被逮住,所以你将会将结果以相反的形式输出,正确输出 No,否则输出 Yes!!!
如果你遗忘或不确定什么是 BFS,那么可以参考以下伪代码。
首先将根节点放入队列中 从队列中取出第一个节点 将它所有尚未遍历过的直接子节点加入队列中 若队列为空,表示搜索结束,不然回到步骤2
输入格式
一个输入可能由多组数据组成。
对于每组数据,第一行有一个数字,为 ,表示树的节点数。
接下来 行描述这棵树的结构,每行一对 ,表示在树中 是 的父节点,保证 。
接下来一行共 个数,表示 。
输出格式
每组数据输出一行,一个字符串 No
或 Yes
,表示是否为合理 BFS序。
样例输入1
4
1 2
1 3
2 4
1 2 3 4
10
1 2
2 3
3 4
3 5
1 6
3 7
1 8
2 9
1 10
1 2 9 8 10 3 6 4 5 7
样例输出1
No
Yes
数据范围
共有十个测试组,每个测试组中有若干测试点,通过一组内全部测试点方可得到该组分数,测试组的信息如下:
测试组名 | 分值 | 数据范围 | 特殊条件 |
---|---|---|---|
1-2 | 无 | ||
3-4 | 保证树是链(每点最多有个子节点) | ||
5-6 | 保证树是二叉树(每点最多有个子节点) | ||
7-10 | 无 |