#abc415C. Mixture

Mixture

题目描述

NN 种药品 1,2,,N1, 2, \ldots, N。你的目标是将它们全部混合在一起。给定一个由 01 组成的长度为 2N12^N - 1 的字符串 SS,该字符串表示以下信息:

首先,定义包含至少一种药品的混合状态 ii1i2N11 \le i \le 2^N - 1)如下: 当 ii 用二进制表示时,从下数第 kk1kN1 \le k \le N)位为 1 当且仅当状态 ii 中包含药品 kk

例如,1313 的二进制表示为 1101(2)1101_{(2)},因此状态 1313 表示药品 1,3,41, 3, 4 混合的状态。

  • SS 的第 ii 个字符为 0 时,状态 ii安全的。
  • SS 的第 ii 个字符为 1 时,状态 ii危险的。

你通过以下操作混合药品:

  1. 准备一个空瓶。
  2. 重复以下步骤:选择一种尚未倒入瓶中的药品,将其倒入瓶中。此时,瓶中混合的药品状态必须不是危险状态。

请判断是否能通过上述操作得到所有药品都混合的状态。

输入格式

输入包含 TT 个测试用例,格式如下:

T
case_1
case_2
...
case_T

每个测试用例的格式为:

N
S

输出格式

对于每个测试用例,如果能得到所有药品都混合的状态,输出 Yes;否则,输出 No

输入示例 1

5
3
0010000
3
0010110
1
1
2
100
4
001110010101110

输出示例 1

Yes
No
No
Yes
Yes

示例说明

输入包含 5 个测试用例。

第一个测试用例: 有 3 种药品。仅药品 1,21, 2 混合的状态 33 是危险的,其他状态均安全。例如,可通过以下步骤得到所有药品混合的状态:

  1. 先倒入药品 22,瓶中状态为 22(仅药品 22),安全。
  2. 再倒入药品 33,瓶中状态为 66(药品 2,32, 3),安全。
  3. 最后倒入药品 11,瓶中状态为 77(药品 1,2,31, 2, 3),安全。

第二个测试用例: 有 3 种药品。药品 1,21, 2 混合的状态 33、药品 1,31, 3 混合的状态 55、药品 2,32, 3 混合的状态 66 均为危险,其他状态安全。此时无法得到所有药品混合的状态。

第三个测试用例: 有 1 种药品。仅药品 11 的状态 11 是危险的,因此无法得到所有药品混合的状态。

约束条件

  • TT1T400001 \le T \le 40000 的整数。
  • NN1N181 \le N \le 18 的整数。
  • SS 是长度为 2N12^N - 1 的由 01 组成的字符串。
  • 输入中所有 S=2N1|S| = 2^N - 1 的总和不超过 5×1055 \times 10^5