子任务 1:枚举 条可能的边的所有子集,检查边数限制、连通性及奇数度顶点数。时间复杂度为 ,空间复杂度为 。
完整解法:所有顶点的度数之和等于边数的两倍,因此为偶数。故当 为奇数时无解。 时必有 ,也包含在此情况中。
当 为偶数时,。先将顶点 与顶点 分别相连。顶点 的度数为奇数 ,其余 个顶点的度数均为 ,所以恰好有 个奇数度顶点。
从顶点 开始,将剩余顶点接成一条路径,即加入 。每加入一个新顶点,原路径端点的度数从 变成 ,新端点的度数为 ,因此奇数度顶点数不变。
最终得到无自环、无重边的连通树,边数为 ,满足输出限制。 时不添加路径边。
每个用例的时间复杂度为 ,除输出缓冲区外的额外空间复杂度为 。校验器用有序集合检查重边,用并查集检查连通性,时间复杂度为 ,空间复杂度为 。由于 ,所有运算均在 64 位有符号整数范围内。
Solution written by GPT