#S1009. 一维扫雷
一维扫雷
题目描述
西西酱最近迷上了扫雷游戏,但她觉得扫雷好难,于是决定开发一个只有一行的扫雷。
她所设计的扫雷地图可以用一个长度为 的字符串表示,仅包含星号字符 '*'
与数字字符 '0', '1', '2'
。
其中,星号字符代表地雷,数字字符代表空地,同时它也表示相邻位置中地雷的数量。
这个字符串必须合法,例如:
"*000000*"
、"*******"
、"*0001*2*"
是合法的,符合上述描述。"*000*1*0*"
是非法的,因为中间的数字 '1' 的相邻位置不存在任何地雷。"*1*0001*"
是非法的,因为第一个数字 '0' 的相邻位置存在非设定地雷。"*2*1*02*"
是非法的,甚至没有一个数字标记的地雷数量是正确的。
西西酱已经生成了所有长度为 的合法地图,并按字典序的顺序,从 0 开始编号并保存了起来。 现在她想调出编号为 的地图,请你帮她绘制出这张地图,或告诉她编号有误。
- 如 ,地图为
"*1*1*"
- 如 ,地图为
"*1*2*"
- 如 ,地图为
"*2*1*"
- 如 ,地图为
"*2*2*"
注意: '*', '0', '1', '2'
的 ASCII 码分别为 42, 48, 49, 50。
输入格式
第一行一个整数 ,表示数据组数。 对于每组数据,仅包含一行两个整数 ,表示字符串的长度以及待查询的地图编号。
输出格式
对于每组数据,输出一行,一个字符串,表示编号为 的地图,或输出 -1 表示该地图不存在。
输入数据 1
7
7 71
1 0
1 1
1 2
20 100000
47 47
60 1000000000000000000
输出数据 1
0001*2*
*
0
-1
***2*****2**11******
*****************************************11*2*1
1**2*2******11*11*11**2***2*11***2*11*101*******************
样例说明
注意, 时的合法字符串只有 "*"
和 "0"
两种。
数据范围与提示
所有测试数据的范围和特点如下表所示:
测试点编号 | ||
---|---|---|
1 ~ 3 | 10 | |
4 ~ 9 | 20 | |
10 ~ 12 | 60 | |
13 ~ 20 |
对于所有测试点,保证 $1 \le T \le 10, 1 \le N \le 60, 0 \le K \le 10^{18}$。
相关
在下列比赛中: