样例 1 输入
0
4 2 2
1 2
2 3
3 4
1 3
2 4
2 3
样例 1 输出
样例 1 解释
在这个样例中,有三种选取非树边的方法:只选取边 ,只选取边 ,或不选取任何条非树边。
如果只选取边 ,或者不选取任何一条非树边,则我们发现 都是图 的 -dfs 树。指定的搜索顺序如下:
- 将 放入栈 中。此时 。
- 将 标记为“已访问的”。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 将 标记为“已访问的”。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 由于与 相邻的点都是“已访问的”,将 弹出栈,此时 。
- 由于与 相邻的点都是“已访问的”,将 弹出栈,此时 。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 由于与 相连的点都是“已访问的”,将 弹出栈,此时 。
- 由于与 相连的点都是“己访问的”,将 弹出栈,此时 重新变为空。
如果只选取边 ,则我们可以说明 是图 的 -dfs 树。指定的搜索顺序如下:
- 将 放入栈 中。此时 。
- 将 标记为“已访问的”。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 将 标记为“已访问的”。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 由于与 相邻的点都是“己访问的”,将 弹出栈,此时 。
- 由于与 相邻的点都是“已访问的”,将 弹出栈,此时 。
- 由于 与 相连,且 是“未访问的”,将 放入栈 中,并将 加入树 中,此时 。
- 由于与 相连的点都是“已访问的”,将 弹出栈此时 。
- 由于与 相连的点都是“已访问的”,将 弹出栈,此时 重新变为空。
样例 2
见附件中的 dfs/dfs2.in
与 dfs/dfs2.ans
。
这个样例满足测试点 的约束条件。
样例 3
见附件中的 dfs/dfs3.in
与 dfs/dfs3.ans
。
这个样例满足测试点 的约束条件。
样例 4
见附件中的 dfs/dfs4.in
与 dfs/dfs4.ans
。
这个样例满足测试点 的约束条件。
样例 5
见附件中的 dfs/dfs5.in
与 dfs/dfs5.ans
。
这个样例满足测试点 的约束条件。
样例 6
见附件中的 dfs/dfs6.in
与 dfs/dfs6.ans
。
这个样例满足测试点 的约束条件。