#ABC473D. 系数阶梯 / Coefficient Stair

系数阶梯 / Coefficient Stair

题目描述

输出所有满足 i=1Ni×Ai=K\displaystyle\sum_{i=1}^{N} i\times A_i=K 的、由非负整数组成的长度为 NN 的序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N),按字典序从小到大输出。

本题保证输入满足:满足条件的序列数不超过 3×1053\times 10^5

什么是序列的字典序?

称序列 S=(S1,S2,,SS)S = (S_1,S_2,\ldots,S_{|S|}) 字典序小于序列 T=(T1,T2,,TT)T = (T_1,T_2,\ldots,T_{|T|}),当且仅当下面的 1. 或 2. 之一成立。这里 S|S|T|T| 分别表示序列 SSTT 的长度。

  1. S<T|S| \lt |T| 且 $(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})$。
  2. 存在整数 1imin{S,T}1 \leq i \leq \min\lbrace |S|, |T| \rbrace,使得以下两条同时成立:
    • $(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})$
    • SiS_i(在数值上)小于 TiT_i

输入格式

输入从标准输入读入,格式如下:

  • NN KK

输出格式

设满足条件的非负整数序列共有 qq 个,输出 qq 行。每行按顺序输出一个满足条件的非负整数序列的元素,元素之间以空格分隔。对于每个序列,所有在它之前输出的序列都必须字典序小于它。

数据范围

  • 1N101\le N\le 10
  • 1K2×1051\le K\le 2\times10 ^ 5
  • 满足条件的序列数不超过 3×1053\times10 ^ 5
  • 输入的所有值均为整数。
3 8
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

例如,对于序列 (0,1,2)(0,1,2),有 0×1+1×2+2×3=0+2+6=80\times1+1\times2+2\times3=0+2+6=8,满足条件。不存在字典序比它更小且满足条件的序列,因此第一行输出 0 1 2

包括 (0,1,2)(0,1,2) 在内,共有十个序列满足条件。将它们按字典序从小到大输出。

1 200000
200000
8 9
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

子任务设置

  • 子任务 1(30 分):满足条件的序列数不超过 20002000
  • 子任务 2(70 分):无特殊限制。