CF1311E.Construct the Binary Tree

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given two integers nn and dd. You need to construct a rooted binary tree consisting of nn vertices with a root at the vertex 11 and the sum of depths of all vertices equals to dd.

A tree is a connected graph without cycles. A rooted tree has a special vertex called the root. A parent of a vertex vv is the last different from vv vertex on the path from the root to the vertex vv. The depth of the vertex vv is the length of the path from the root to the vertex vv. Children of vertex vv are all vertices for which vv is the parent. The binary tree is such a tree that no vertex has more than 22 children.

You have to answer tt independent test cases.

给你两个整数 nn 和 dd。你需要构造一棵包含 nn 个顶点的有根二叉树,其中顶点 11 为根,且所有顶点的深度之和恰好等于 dd。

树是一种无环的连通图。有根树中有一个特殊的顶点称为根。顶点 vv 的父节点是指从根到 vv 的路径上最后一个不同于 vv 的顶点。顶点 vv 的深度定义为从根到 vv 的路径长度。顶点 vv 的子节点是指所有以 vv 为父节点的顶点。二叉树是一种每个顶点至多有两个子节点的树。

你需要回答 tt 个相互独立的测试用例。

输入格式

The first line of the input contains one integer tt (1≤t≤10001 \le t \le 1000) — the number of test cases.

The only line of each test case contains two integers nn and dd (2≤n,d≤50002 \le n, d \le 5000) — the number of vertices in the tree and the required sum of depths of all vertices.

It is guaranteed that the sum of nn and the sum of dd both does not exceed 50005000 (∑n≤5000,∑d≤5000\sum n \le 5000, \sum d \le 5000).

输入的第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。

每个测试用例仅一行,包含两个整数 nn 和 dd(2≤n,d≤50002 \le n, d \le 5000),分别表示树中顶点的数量以及所有顶点深度之和的要求值。

保证所有测试用例的 nn 之和与 dd 之和均不超过 50005000(即 ∑n≤5000, ∑d≤5000\sum n \le 5000,\ \sum d \le 5000)。

输出格式

For each test case, print the answer.

If it is impossible to construct such a tree, print "NO" (without quotes) in the first line. Otherwise, print "{YES}" in the first line. Then print n−1n-1 integers p2,p3,…,pnp_2, p_3, \dots, p_n in the second line, where pip_i is the parent of the vertex ii. Note that the sequence of parents you print should describe some binary tree.

对于每个测试用例,请输出答案。

如果无法构造出满足条件的树,则在第一行输出 "NO"(不带引号)。否则,在第一行输出 "{YES}"。然后在第二行输出 n−1n-1 个整数 p2,p3,…,pnp_2, p_3, \dots, p_n,其中 pip_i 表示顶点 ii 的父节点。注意:你所输出的父节点序列必须描述一棵二叉树。

输入输出样例

  • 输入#1

    3
    5 7
    10 19
    10 18

    输出#1

    YES
    1 2 1 3 
    YES
    1 2 3 3 9 9 2 1 6 
    NO

说明/提示

Pictures corresponding to the first and the second test cases of the example:

对应示例中第一个和第二个测试用例的图片:

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

首页