CF2120C.Divine Tree
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Harshith 通过在一棵“神圣树”下修炼,获得了竞赛编程的启迪。一棵神圣树是一个有 n 个节点的有根树,节点编号为 1 到 n。节点 v 的神圣值 d(v) 被定义为从根到节点 v 的唯一路径上的最小节点编号。
Aryan 作为一名渴望知识的竞赛程序员,请求 Harshith 传授知识。Harshith 同意了,但条件是 Aryan 会得到两个正整数 n 和 m,他需要构造一棵有 n 个节点的神圣树,使得整棵树的神圣值之和为 m,即 i=1∑nd(i)=m。如果不存在这样的树,Aryan 必须报告“不可能”。
Aryan 为了获得知识,向你寻求帮助。作为他的好朋友,请你帮助他完成这个任务。
∗ 一棵树是一个无环连通图。有根树是指定了一个特殊节点作为根的树。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(1≤n≤106,1≤m≤1012)。
保证所有测试用例中 n 的总和不超过 106。
输出格式
对于每个测试用例,输出一行一个整数 k,表示树的根节点编号。
接下来 n−1 行,每行两个正整数 ui,vi(1≤ui,vi≤n,ui=vi),表示第 i 条边连接了节点 ui 和 vi。
边和节点的顺序可以任意。如果有多种方案,输出任意一种均可。
如果无解,输出一行“-1”。
输入输出样例
输入#1
2 1 2 4 6
输出#1
-1 3 3 1 1 2 2 4
说明/提示
在第一个测试用例中,只有一个节点,编号为 1,所以无法得到和为 2。
在第二个测试用例中,可以以 3 作为根节点构造一棵树,使得神圣值之和为 6。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?