#P14925. [北大集训 2025] 异形工厂

[北大集训 2025] 异形工厂

题目描述

在异形工厂里,有一种叫“轮换器”的工具。使用一次轮换器可以将一个 01 串中长度恰好为 33 的子串循环移位,即将 xyzxyz 替换为 yzxyzxzxyzxy

给定长度为 nn 的 01 串 s,ts, t。有 qq 次询问,每次询问会给定 l,rl, r,求最少需要使用多少次轮换器才能将 s[l,r]s[l,r] 变为 t[l,r]t[l,r]

输入格式

从标准输入读入数据。

输入的第一行包含两个正整数 n,qn, q,分别表示字符串 s,ts, t 的长度和询问次数。

输入的第二行包含一个长度为 nn 的 01 字符串 ss

输入的第三行包含一个长度为 nn 的 01 字符串 tt

输入的第 i+3i+3 (1iq1 \le i \le q) 行包括两个正整数 l,rl, r,表示第 ii 次询问。

输出格式

输出到标准输出。

对于每次询问,输出一行一个整数表示使用轮换器的最少次数。特别地,若无论如何都无法将 s[l,r]s[l,r] 变为 t[l,r]t[l,r],则输出 1-1

10 5
1010111000
1111000001
1 6
3 5
4 5
1 10
8 9
3
1
-1
5
0

提示

【样例 1 解释】

对于第一次询问,一种可能的操作方式为:

  1. 选择子串 [4,6][4,6],将 011011 替换为 110110,得到 101110101110
  2. 选择子串 [2,4][2,4],将 011011 替换为 110110,得到 111010111010
  3. 选择子串 [4,6][4,6],将 010010 替换为 100100,得到 111100111100

【子任务】

对于所有测试数据,均有:

  • 1n,q5×1051 \le n, q \le 5 \times 10^5
  • 对于所有 1in1 \le i \le n,均有 si,ti{0,1}s_i, t_i \in \{0,1\}
  • 1lrn1 \le l \le r \le n
子任务编号 分值 n,qn, q \le 特殊性质
1 10 1010
2 2×1032 \times 10^3 A
3 25
4 20 2×1052 \times 10^5
5 10 5×1055 \times 10^5 A
6 25

特殊性质 A:对于所有 1in+121 \le i \le \lfloor \frac{n+1}{2} \rfloor,均有 s2i1=t2i1=0s_{2i-1} = t_{2i-1} = 0