AT_abc415_c [ABC415C] Mixture
题目描述
有 $N$ 种药品 $1,2,\dots,N$。你的目标是将它们全部混合在一起。
给定一个长度为 $2^N-1$ 的只包含 `0` 和 `1` 的字符串 $S$,它表示如下信息:
- 首先,定义 $i$($1\le i\le 2^N-1$)为混合了 $1$ 种或多种药品的状态。
- 当 $i$ 用二进制表示时,从低位起第 $k$ 位($1\le k\le N$)为 $1$,当且仅当药品 $k$ 被包含在内。
- 例如,$13$ 的二进制表示为 $1101_{(2)}$,因此状态 $13$ 表示药品 $1,3,4$ 被混合在一起。
- 当 $S$ 的第 $i$ 个字符为 `0` 时,状态 $i$ 是**安全**的。
- 当 $S$ 的第 $i$ 个字符为 `1` 时,状态 $i$ 是**危险**的。
你可以通过如下操作混合药品:
- 首先,准备一个空瓶子。
- 然后重复以下操作:
- 选择一种尚未倒入瓶中的药品,倒入瓶中。
- 此时,瓶中混合的药品所对应的状态不能是危险状态。
请判断是否能够通过上述操作,将所有药品全部混合在一起。
有 $T$ 个测试用例,请分别输出每个测试用例的答案。
输入格式
输入按以下格式从标准输入给出。
> $T$
> $\mathrm{case}_1$
> $\mathrm{case}_2$
> $\vdots$
> $\mathrm{case}_T$
每个测试用例 $\mathrm{case}_i$ 的格式如下:
> $N$ $S$
输出格式
输出 $T$ 行,第 $i$ 行输出第 $i$ 个测试用例的答案。
对于每个测试用例,如果能够将所有药品全部混合在一起,输出 `Yes`,否则输出 `No`。
说明/提示
### 数据范围
- $T$ 是 $1$ 到 $40000$ 之间的整数。
- $N$ 是 $1$ 到 $18$ 之间的整数。
- $S$ 是长度为 $2^N-1$ 的只包含 `0` 和 `1` 的字符串。
- 所有输入中 $|S|=2^N-1$ 的总和不超过 $5\times 10^5$。
### 样例解释 1
本输入包含 $5$ 个测试用例。第 $1$ 个测试用例如下:
- 有 $3$ 种药品。
- 只有药品 $1,2$ 混合的状态 $3$ 是危险的,其他状态都是安全的。
- 例如,可以按以下顺序将所有药品混合在一起:
- 首先倒入药品 $2$,此时瓶中只有药品 $2$,对应状态 $2$,是安全的。
- 然后倒入药品 $3$,此时瓶中有药品 $2,3$,对应状态 $6$,是安全的。
- 最后倒入药品 $1$,此时瓶中有药品 $1,2,3$,对应状态 $7$,是安全的。
第 $2$ 个测试用例如下:
- 有 $3$ 种药品。
- 药品 $1,2$ 混合的状态 $3$、药品 $1,3$ 混合的状态 $5$、药品 $2,3$ 混合的状态 $6$ 都是危险的,其他状态都是安全的。
- 对于本例,无法将所有药品混合在一起。
第 $3$ 个测试用例如下:
- 有 $1$ 种药品。
- 只有药品 $1$ 混合的状态 $1$ 是危险的,因此无法将所有药品混合在一起。
由 ChatGPT 4.1 翻译