#PTA2025L301. 我也要分叉吗
我也要分叉吗
题目描述
一棵有根树 的权值定义为:
其中 为 节点与根节点的最短路径边数, 表示节点的权值。
给定 个节点和一个正整数 ,每个节点都有一个正整数权值 。
现在需要你构造一棵 叉树 ,满足以下条件:
-
所有权值非 的节点互为兄弟关系,即不存在节点对 ,其中 ,且 ,满足 是 的祖先,或 是 的祖先。
-
树的权值 在所有满足上一个条件的 叉树的权值中最小。
由于仅使用给定的 个节点显然无法满足,因此你可以添加最多 个权值为 的节点,新添加的节点编号从 开始,依次增加。
一颗包含 个节点的树是指一个具有 个节点、 条边的无向连通图。有根树是在树中指定一个特殊的顶点作为根的树。
叉树指的是每个节点最多有 个子节点的有根树。
节点 的祖先指所有满足以下条件的顶点 :,并且从根节点到 的最短路径经过 。
输入描述
有多组测试用例。
第一行包含一个正整数 (),表示测试用例组数。
对每组测试用例:
第一行包含两个正整数 ,(),分别表示节点个数、树的叉数。
第二行包含 个正整数 ()。
保证所有测试用例中 之和不超过 。
输出描述
对每组测试用例:
第一行输出三个正整数 ,分别表示树的权值,添加的权值为 的节点个数,根节点编号。
接下来输出 行,每行包含两个正整数 表示节点 和 之间有一条边。
若有多种合法方案,输出任意一种即可。
样例
1
5 3
1 2 3 4 5
21 2 6
6 4
6 5
6 7
7 1
7 2
7 3
数据范围
共有 组测试点。
对于前 组测试点 之和不超过 。
对于第 到 组测试点 之和不超过 。
对于第 到 组测试点 之和不超过 。