P15759 [JAG 2025 Summer Camp #1] Walking on Binary Tree
题目描述
给定一棵无限完全二叉树,其顶点用正整数标记。根节点为顶点 $1$,对于每个顶点 $x$($x \geq 2$),其父节点是 $\left\lfloor \frac{x}{2} \right\rfloor$。
同时给定一个长度为 $N$ 的字符串 $S = S_0 S_1 \ldots S_{N-1}$。$S$ 的每个字符是 `L` 或 `R`。
考虑以下过程:你当前位于某个顶点 $u$,希望通过在树中反复移动到达顶点 $v$。
在第 $i$ 次移动(从 1 开始计数)时,假设你位于顶点 $x$。你可以选择以下移动之一:
**向下移动:** 如果 $S_{(i-1) \bmod N}$ 是 `L`,则移动到顶点 $2x$。否则,移动到顶点 $2x + 1$。
**向上移动:** 仅当 $x \geq 2$ 时可以选择。移动到顶点 $\left\lfloor \frac{x}{2} \right\rfloor$。
注意,你不能停留在同一个顶点。
给定 $Q$ 个独立的询问。在第 $i$ 个询问中,你从顶点 $u_i$ 出发,想要到达顶点 $v_i$。
对于每个询问,判断是否可能从 $u_i$ 到达 $v_i$。如果可能,求出所需的最少移动次数。
输入格式
输入格式如下:
$$\begin{aligned}
& N \\
& S \\
& Q \\
& u_1 \ v_1 \\
& u_2 \ v_2 \\
& \vdots \\
& u_Q \ v_Q
\end{aligned}$$
- $1 \leq N \leq 10^6$
- $1 \leq Q \leq 200\,000$
- $1 \leq u_i, v_i \leq 10^{18}$ ($1 \leq i \leq Q$)
- $N$、$Q$、$u_i$ 和 $v_i$ 是整数。
- $S$ 是一个长度为 $N$ 的字符串,由 `L` 和 `R` 组成。
输出格式
输出 $Q$ 行。在第 $i$ 行,如果可以从 $u_i$ 到达 $v_i$,则输出所需的最少移动次数;否则输出 `-1`。
说明/提示
翻译由 DeepSeek V3.2 完成