#abc473d. Coefficient Stair
Coefficient Stair
题目描述
请把所有满足下列条件的、由非负整数组成的长度为 的序列 按字典序从小到大全部输出:
保证输入满足条件的序列个数不超过 个。
什么是序列的字典序?
称序列 字典序小于序列 ,是指下面 1. 与 2. 中至少有一条成立(其中 分别表示 的长度):
- 且 $(S_1, S_2, \ldots, S_{|S|}) = (T_1, T_2, \ldots, T_{|S|})$;
- 存在整数 ,使得下面两条同时成立:
- $(S_1, S_2, \ldots, S_{i-1}) = (T_1, T_2, \ldots, T_{i-1})$
- 作为数值小于 。
输入格式
N K
输出格式
设满足条件的非负整数序列有 个,输出 行。每行按顺序输出一个序列的各个元素,元素之间用一个空格隔开。
对任意一个序列,排在它前面输出的所有序列都必须字典序比它小。
输入示例 1
3 8
输出示例 1
0 1 2
0 4 0
1 2 1
2 0 2
2 3 0
3 1 1
4 2 0
5 0 1
6 1 0
8 0 0
示例 1 说明
例如序列 满足 $0 \times 1 + 1 \times 2 + 2 \times 3 = 0 + 2 + 6 = 8$,符合条件。不存在字典序比它更小的合法序列,所以第 行输出 0 1 2。
连同 在内共有 个序列满足条件,按字典序从小到大依次输出。
输入示例 2
1 200000
输出示例 2
200000
示例 2 说明
时式子变成 ,解唯一。这组数据用来检验 取到上限时的输出,以及只有一个元素时行末不应有多余空格。
输入示例 3
8 9
输出示例 3
0 0 0 1 1 0 0 0
0 0 1 0 0 1 0 0
0 0 3 0 0 0 0 0
0 1 0 0 0 0 1 0
0 1 1 1 0 0 0 0
0 2 0 0 1 0 0 0
0 3 1 0 0 0 0 0
1 0 0 0 0 0 0 1
1 0 0 2 0 0 0 0
1 0 1 0 1 0 0 0
1 1 0 0 0 1 0 0
1 1 2 0 0 0 0 0
1 2 0 1 0 0 0 0
1 4 0 0 0 0 0 0
2 0 0 0 0 0 1 0
2 0 1 1 0 0 0 0
2 1 0 0 1 0 0 0
2 2 1 0 0 0 0 0
3 0 0 0 0 1 0 0
3 0 2 0 0 0 0 0
3 1 0 1 0 0 0 0
3 3 0 0 0 0 0 0
4 0 0 0 1 0 0 0
4 1 1 0 0 0 0 0
5 0 0 1 0 0 0 0
5 2 0 0 0 0 0 0
6 0 1 0 0 0 0 0
7 1 0 0 0 0 0 0
9 0 0 0 0 0 0 0
示例 3 说明
而 较小,此时很多下标的系数(如 )已经接近 ,大量分支走不通。这组数据用来检验可行性剪枝是否正确:注意第 行是 而不是 ,因为 之后剩下的 必须能用系数 凑出来, 是字典序最小的凑法。
约束条件
- 满足条件的序列个数不超过 个
- 所有输入值均为整数