CF2120C.Divine Tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Harshith 通过在一棵“神圣树”下修炼,获得了竞赛编程的启迪。一棵神圣树是一个有 nn 个节点的有根树,节点编号为 11 到 nn。节点 vv 的神圣值 d(v)d(v) 被定义为从根到节点 vv 的唯一路径上的最小节点编号。

Aryan 作为一名渴望知识的竞赛程序员,请求 Harshith 传授知识。Harshith 同意了,但条件是 Aryan 会得到两个正整数 nn 和 mm,他需要构造一棵有 nn 个节点的神圣树,使得整棵树的神圣值之和为 mm,即 ∑i=1nd(i)=m\displaystyle\sum\limits_{i=1}^n d(i)=m。如果不存在这样的树,Aryan 必须报告“不可能”。

Aryan 为了获得知识,向你寻求帮助。作为他的好朋友,请你帮助他完成这个任务。

∗^{\text{∗}} 一棵树是一个无环连通图。有根树是指定了一个特殊节点作为根的树。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n≤1061 \le n \le 10^6,1≤m≤10121 \le m \le 10^{12})。

保证所有测试用例中 nn 的总和不超过 10610^6。

输出格式

对于每个测试用例,输出一行一个整数 kk,表示树的根节点编号。

接下来 n−1n-1 行,每行两个正整数 ui,viu_i, v_i(1≤ui,vi≤n1 \le u_i, v_i \le n,ui≠viu_i \ne v_i),表示第 ii 条边连接了节点 uiu_i 和 viv_i。

边和节点的顺序可以任意。如果有多种方案,输出任意一种均可。

如果无解,输出一行“-1”。

输入输出样例

  • 输入#1

    2
    1 2
    4 6

    输出#1

    -1
    3
    3 1
    1 2
    2 4

说明/提示

在第一个测试用例中,只有一个节点,编号为 11,所以无法得到和为 22。

在第二个测试用例中,可以以 33 作为根节点构造一棵树,使得神圣值之和为 66。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页