#NC2501B. 二进制子串 2
二进制子串 2
题目描述
给定两个整数 和 ,你需要找到一个长为 的二进制字符串,其本质不同的非空子串的数量恰好为 。这里 不小于 ,这是长为 的二进制字符串中本质不同非空子串的最小数量,并且不超过 ,这是已经得到证明的最大数量。
然而上述这个问题似乎太难了,因此你只需要找到一个长为 的二进制字符串,使其不同的非空子字符串的数量与 的相对误差最多为 ,即在范围 内,或者指出没有满足条件的二进制字符串。
输入格式
输入的第一行包含一个整数 ,表示测试数据的组数。对于每组测试数据:
仅有的一行包含两个整数 和 。
保证所有测试数据 的总和不超过 。
输出格式
对于每组测试数据,输出一行包含一个满足条件的长度为 的二进制字符串,或者输出 -1 表示没有满足条件的二进制字符串。
5
5 5
5 6
5 7
5 8
5 9
00000
00000
-1
00001
00001
5
1 1
2 3
3 5
4 8
5 12
0
01
011
0110
01100
解释 #1
- 对于 的情况,字符串
00000正好有 个不同的非空子串(0,00,000,0000,00000)。 - 对于 的情况,不存在满足条件的字符串,因为任何长度为5的二进制字符串至少会有 个不同的子串,而最大可能值 ,但 不在 即 范围内。
- 对于 的情况,字符串
00001有7个不同的非空子串(0,00,000,0000,1,01,0001)。