SP693 LWAR - Lethal Warfare
题目描述
一场重大的宇宙战即将结束。星际超级大国受到了攻击,但它们防御得相当不错。现在,它们准备发动最后的反击。然而,敌舰数量庞大,并且容易分散。根据太空战专家的建议,唯一可行的方法是针对排成一列的敌舰进行轰炸。
由于敌舰的总数是 2 的幂次,为了轰炸所有敌舰(编号从 0 到 $2^N - 1$),我们将使用一种称为 **BombStrat** 的策略,具体如下:
1. 从左到右轰炸前半部分,即 \[0 到 $2^{N-1} - 1$\]。
2. 对于剩下的后半部分,从右到左轰炸它的后半段,即按顺序轰炸编号为 $2^N - 1, 2^N - 2, \ldots, 2^{N-1} + 2^{N-2}$ 的敌舰。
3. 然后对剩下的敌舰 \[$2^{N-1}$ 到 $2^{N-1} + 2^{N-2} - 1$\] 继续使用 **BombStrat**。
例如,当 $N=3$ 时,也就是敌舰编号从 0 到 $2^3 - 1$ 时,轰炸的顺序如下:
- 第一步:依次轰炸编号为 0, 1, 2, 3 的敌舰。
- 第二步:接着轰炸编号为 7, 6 的敌舰。
- 第三步:最后同样策略轰炸剩余的敌舰 \[4, 5\]。
因此,完整的轰炸顺序是 0 -> 1 -> 2 -> 3 -> 7 -> 6 -> 4 -> 5。为了简化星际超级大国的飞行员任务,他们希望知道每艘敌舰在何时被击中。你的任务是,给定 $N$ 和一艘敌舰的描述,输出该敌舰被轰炸的序列号(从 0 开始计数)。
输入格式
- 第一行是整数 $T$,表示测试用例的数量,$T \leq 50$。
- 对于每个测试用例,包含一行二进制数,表示敌舰的编号。这个字符串的长度等于 $N$(如果必要会被补零)。$N \leq 30000$。
输出格式
对于每个测试用例,输出炸弹的顺序号,表示为长度恰好为 $N$ 的二进制数字。
说明/提示
- $1 \leq T \leq 50$
- $1 \leq N \leq 30000$
**本翻译由 AI 自动生成**