#P15759. [JAG 2025 Summer Camp #1] Walking on Binary Tree

[JAG 2025 Summer Camp #1] Walking on Binary Tree

题目描述

给定一棵无限完全二叉树,其顶点用正整数标记。根节点为顶点 11,对于每个顶点 xx(x≥2x \geq 2),其父节点是 ⌊x2⌋\left\lfloor \frac{x}{2} \right\rfloor。

同时给定一个长度为 NN 的字符串 S=S0S1…SN−1S = S_0 S_1 \ldots S_{N-1}。SS 的每个字符是 L 或 R。

考虑以下过程:你当前位于某个顶点 uu,希望通过在树中反复移动到达顶点 vv。

在第 ii 次移动(从 1 开始计数)时,假设你位于顶点 xx。你可以选择以下移动之一:

向下移动: 如果 S(i−1) mod NS_{(i-1) \bmod N} 是 L,则移动到顶点 2x2x。否则,移动到顶点 2x+12x + 1。

向上移动: 仅当 x≥2x \geq 2 时可以选择。移动到顶点 ⌊x2⌋\left\lfloor \frac{x}{2} \right\rfloor。

注意,你不能停留在同一个顶点。

给定 QQ 个独立的询问。在第 ii 个询问中,你从顶点 uiu_i 出发,想要到达顶点 viv_i。

对于每个询问,判断是否可能从 uiu_i 到达 viv_i。如果可能,求出所需的最少移动次数。

输入格式

输入格式如下:

$$\begin{aligned} & N \\ & S \\ & Q \\ & u_1 \ v_1 \\ & u_2 \ v_2 \\ & \vdots \\ & u_Q \ v_Q \end{aligned}$$
  • 1≤N≤1061 \leq N \leq 10^6
  • 1≤Q≤200 0001 \leq Q \leq 200\,000
  • 1≤ui,vi≤10181 \leq u_i, v_i \leq 10^{18} (1≤i≤Q1 \leq i \leq Q)
  • NN、QQ、uiu_i 和 viv_i 是整数。
  • SS 是一个长度为 NN 的字符串,由 L 和 R 组成。

输出格式

输出 QQ 行。在第 ii 行,如果可以从 uiu_i 到达 viv_i,则输出所需的最少移动次数;否则输出 -1。

5
LLRLR
3
1 12
9 2
913 2025
7
2
23
1
L
1
1 3
-1

提示

翻译由 DeepSeek V3.2 完成