luogu#P8361. [SNOI2022] 倍增

    ID: 12356 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>各省省选2022Special JudgeO2优化陕西

[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 进制下是 xx 的所有数位的一个排列。

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

输入格式

输入包含多组数据。

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

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

输出格式

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

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

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

3
6 10
3 3
6 7

1 4 2 8 5 7
-1
0 3 5 3 1 6
样例 2 见附件 double2.in
本组数据满足测试点 3 的限制。
样例 2 见附件 double2.ans
样例 3 见附件 double3.in
本组数据满足测试点 17 的限制。
样例 3 见附件 double3.ans

提示

【样例 1 解释】

  • 第一组数据的解释参见【题目描述】。
  • 对于第二组数据,可以通过枚举所有的 nnBB 进制数说明一定不能找到这样的正整数。
  • 对于第三组数据,2x2x77 进制表示为 103635(7)103635_{(7)},因此这是一个满足题意的答案。

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

【样例 2/3 解释】

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

【提示】

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

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

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

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

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

checker <input> <output> <output>:会检查你的所有有解输出是否符合题目要求。注意以此种方式测试的时候,输出无解总会被报告为合法,因为在此种运行方式下我们只会检查你报告的所有解。

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

【数据规模与约定】

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

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

测试点编号 nn \leq B B \leq TT \leq 特殊约定
11 88 88 1010
22 10410^4
33 2×1052 \times 10^5 1010
44 10410^4
55
66 1515 100100
77 4040
88 100100
99 300300
1010 10001000
1111 30003000
1212 1500015000
1313 5000050000
1414 2×1052 \times 10^5
1515 200200 10410^4 n100n \geq 100
1616 50005000
1717 2×1052 \times 10^5
1818 300300 B=3k1,kNB=3k-1,k \in \N^*
1919 2×1052 \times 10^5
2020 300300 B=3k,kNB=3k,k \in \N^*
2121 2×1052 \times 10^5
2222 100100
2323 500500 50005000
2424 2×1052 \times 10^5
2525