#P9592. 「Daily OI Round 1」Tree

「Daily OI Round 1」Tree

题目描述

给定三个正整数参数 n,d,kn,d,k,你需要构造出一棵根节点为 11 的树,满足这棵树有 nn 个节点,每个节点到根节点的距离和为 dd,除了叶节点以外每个节点的直接儿子数量至少 kk 个,且所有节点的最大深度最小。

注意事项:

  • 距离:两个点之间的简单路径上的边的条数。
  • 叶子节点:没有儿子的非根节点。
  • 根节点深度为 00

输入格式

本题有多组数据。

第一行一个正整数 TT,表示数据组数。
对于每组数据:共一行三个正整数 n,d,kn,d,k,含义如题所示。

输出格式

对于每次询问,如果有解,第一行输出 YES,然后一行 n1n-1 个正整数,第 ii 个正整数 aia_i 表示 aia_ii+1i+1 的父亲节点,且 aiia_i\leq i;如果无解,输出 NO

如果有多组合法的答案,可以任意输出其中一组。

特别地,如果 n=1n=1 且有解,方案输出一行空行即可。

3
5 4 1
5 6 1
5 7 1
YES
1 1 1 1
YES
1 1 3 3
YES
1 2 2 2
3
5 4 2
5 6 2
5 7 2
YES
1 1 1 1
YES
1 1 3 3
NO

提示

样例解释

对于第二组样例的第二组询问,n=5,d=6,k=2n=5,d=6,k=2,即需要构造出含有 55 个节点,各个节点到节点 11 的距离和为 66 且除叶节点外的节点至少有 kk 个儿子节点。

下面是样例构造的图:

其中编号为 1,2,3,4,51,2,3,4,5 的点到根节点 11 的距离分别为 0,1,1,2,20,1,1,2,2,和为 66,满足条件。而且非叶子节点 1,31,3 都含有至少 22 个儿子节点,可以证明这是所有合法构造中节点的最大深度最小的解法,在此处为 22

数据范围

本题开启捆绑测试。

Subtask\text{Subtask} 分值 nn \le 特殊性质
00 55 1010
11 2020
22 10510^5 k=n1k= n-1
33 k=n1k= n-1n2n-2
44 1010 T=1T=1
55 7070

对于全部数据,保证:1n1051 \le n \le 10^51T1051 \le T \le 10^51k1051 \le k \le 10^5n106\sum n \le 10^61d10101 \le d \le 10^{10}