P16502 [GKS 2015 #A] Googol String
题目描述
一个“0/1 字符串”是指每个字符都是 0 或 1 的字符串。在一个 0/1 字符串上可以进行两种操作:
- **切换**:每个 0 变成 1,每个 1 变成 0。例如,“100” 变成 “011”。
- **反转**:将字符串倒转。例如,“100” 变成 “001”。
考虑如下无穷的 0/1 字符串序列:
$S_0 = ``"$
$S_1 = ``0"$
$S_2 = ``001"$
$S_3 = ``0010011"$
$S_4 = ``001001100011011"$
...
$S_N = S_{N-1} + ``0" + \text{\textbf{切换}}(\text{\textbf{反转}}(S_{N-1}))$.
你需要求出 $S_{\text{googol}}$ 的第 $K$ 个字符,其中 googol = $10^{100}$。
输入格式
输入的第一行给出测试用例的数量 $T$。接下来的 $T$ 行,每行包含一个整数 $K$。
输出格式
对于每个测试用例,输出一行形如 `Case #x: y` 的内容,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 $S_{\text{googol}}$ 的第 $K$ 个字符。
说明/提示
### 限制
$1 \le T \le 100$。
**小数据集(测试集 1 - 可见)**
$1 \le K \le 10^5$。
**大数据集(测试集 2 - 隐藏)**
$1 \le K \le 10^{18}$。
翻译由 DeepSeek V4 Pro 完成