#L3729. 「SNOI2022」倍增

    ID: 4265 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 8 上传者: 标签>组合数学数论数位统计其他构造数学难度提高+/省选-

「SNOI2022」倍增

#3729. 「SNOI2022」倍增

题目描述

小 Z 是一个喜欢编程的女孩子。

这天,她在做一道编程题的时候偶然发现了一个神奇的整数 142857142857

142857×2=285714142857 \times 2 = 285714,而 285714285714 的所有数位恰好是 142857142857 的一个排列。

她很好奇,有没有更大的满足这种性质的整数。

她写了一个搜索,发现了一些更大的有趣的数:

26835741×2=5367148226835741 \times 2 = 53671482

0987312654×2=19746253080987312654 \times 2 = 1974625308

\dots

她不满足于解决十进制下这样的问题,于是她想知道,是否在 BB 进制下存在一个 nn 位正整数 xx,满足 2x2x 的所有数位在 BB 进制下是 nn 的所有数位的一个排列。

由于她讨厌数字 00,因此她还要求对于任意 1in1 \leq i \leq nxx2x2xBB 进制下的第 ii 位不能同时为 00

输入格式

输入包含多组数据。

输入的第一行是一个正整数 TT,表示数据组数。

接下来 TT 行,第 ii 行包含两个正整数 nnBB,表示第 ii 组数据。

输出格式

对于每组数据,输出一行。

若本组数据有解,按照从高位到低位的顺序输出 nn 个非负整数,表示你找到的答案在 BB 进制下的值。

否则只需要输出一个数 1-1


样例 1

输入

3
6 10
3 3
6 7

输出

1 4 2 8 5 7
-1
0 3 5 3 1 6

第一组数据的解释参见「题目描述」。

对于第二组数据,可以通过枚举所有的 nnBB 进制数说明一定不能找到这样的正整数。

对于第三组数据,2x2x77 进制表示为 103635(7)103635_{(7)},因此这是一个满足题意的答案。

注意此样例的答案文件仅表明了一种可能的合法答案,不表明答案文件恰好对应标准程序的输出。


样例 2

见附加文件中 double2.indouble2.ans

本组数据满足测试点 33 的限制。

注意此样例的答案文件仅表明了一种可能的合法答案,不表明答案文件恰好对应标准程序的输出。


样例 3

见附加文件中 double3.indouble3.ans

本组数据满足测试点 1717 的限制。

注意此样例的答案文件仅表明了一种可能的合法答案,不表明答案文件恰好对应标准程序的输出。


提示

由于答案可能不唯一,我们下发了校验器 check.cpp 和库文件 testlib.h

可以使用以下命令编译 checker.cpp

g++ -o checker checker.cpp -O2 -std=c++11

check.cpp 编译得到可执行文件 checker 后你可以使用以下方式测试你的答案:

  • checker <input> <output> <answer>:利用选手目录下的 double*.ans 可以用来检验你的答案在样例测试点 double*.in 的正确性。

  • checker <input> <output> <output>:会检查你对这组数据的所有有解输出是否符合题目要求。注意以此种方式测试的时候,输出无解总会被报告为合法。

请选手注意多组数据之间的清空问题。


数据范围与约定

对于全部数据,1T1041 \le T \le 10^42B2×1052 \le \sum B \le 2 \times 10^51n2×1051 \le \sum n \le 2 \times 10^5n1n \ge 1B2B \ge 2

具体的数据规模与约定见下表。

测试点编号 nn BB TT 特殊约定
1 8\le 8 10\le 10
2 104\le 10^4
3 2×105\le 2\times 10^5 10\le 10
4 104\le 10^4
5
6 15\le 15 100\le 100
7 40\le 40
8 100\le 100
9 300\le 300
10 1000\le 1000
11 3000\le 3000
12 15000\le 15000
13 50000\le 50000
14 2×105\le 2\times 10^5
15 200\le 200 104\le 10^4 n100n\ge 100
16 5000\le 5000
17 2×105\le 2\times 10^5
18 300\le 300 B=3k1B = 3k - 1kk 为正整数
19 2×105\le 2\times 10^5
20 300\le 300 B=3kB = 3kkk 为正整数
21 2×105\le 2\times 10^5
22 100\le 100
23 5000\le 5000
24 2×105\le 2\times 10^5
25