题目背景
Y 同学正在设计一种新型的量子计算设备。该设备的核心是一个由两行平行的量子比特(qubit)链构成的计算单元。这两条链,分别称为 链和 链,可以通过一种特殊的“纠缠催化”反应来相互影响,改变各自的状态。
题目描述
给定两个长度为 的二进制字符串 和 (即只包含字符 '0'
和 '1'
)。
现在有 次独立的查询。每次查询给出一个区间 (下标从 1 开始)。我们关注 和 在这个区间上的子串,分别记为 和 。
在子串 和 上,可以进行任意次(零次或多次)以下两种“催化”操作:
- 催化: 如果在当前的子串 中,存在某个位置 (),其两侧的字符 和 均为
'0'
,那么你可以将 串中对应位置的字符 变为'1'
。 - 催化: 如果在当前的子串 中,存在某个位置 (),其两侧的字符 和 均为
'1'
,那么你可以将 串中对应位置的字符 变为'1'
。
操作会改变子串的状态,并可能引发新的操作。你需要对每个查询独立计算:在经过一系列最优的操作后,子串 中最多可以包含多少个 '1'
?
本题包含多组测试用例。
输入格式
第一行包含一个整数 ,表示测试用例的数量。
对于每组测试用例: 第一行包含一个整数 。 第二行和第三行分别包含字符串 和 。 第四行包含一个整数 。 接下来 行,每行包含两个整数 ,描述一次查询。
输出格式
对于每次查询,输出一行一个整数,表示答案。
样例
样例输入 #1
3
4
1111
0000
2
1 2
2 4
4
1010
1101
2
1 3
1 4
6
010101
011010
5
2 3
1 6
2 5
4 4
3 6
样例输出 #1
2
3
2
3
1
4
3
1
2
提示
数据范围与约定
- 均为长度为 的二进制字符串。
- 所有测试用例的 不超过 。
- 所有测试用例的 不超过 。