logo Algo Beat Contest
登录 注册

#10005. [CF1778D] 再探灵活字符串

内存限制:250 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: AlgoBeat 官方账号

题目描述

卡评测将会被封号。

给定两个长度为 的二进制字符串 。每一步,你可以对字符串 进行如下操作:

  • 随机等概率选择一个下标 ),将 反转。如果 ,则变为 ;如果 ,则变为

问:期望需要多少次操作,才能使得 第一次完全相等?

二进制字符串是指每个字符都是 的字符串。

输入格式

第一行包含一个整数 ),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 ),表示字符串的长度。

第二行包含一个长度为 的二进制字符串

第三行包含一个长度为 的二进制字符串

保证所有测试用例中 的总和不超过

输出格式

对于每个测试用例,输出一行,表示期望的操作次数,对 取模。

形式化地,设 。可以证明答案可以表示为最简分数 ,其中 是整数且 。输出一个整数 ,满足

样例

输入 #1

4
1
0
1
2
00
00
4
1000
1110
5
01001
10111

输出 #1

1
0
665496254
665496277

数据范围与提示

在第一个测试用例中,随机选择下标 并翻转 ,操作后 相等。期望操作次数为

在第二个测试用例中, 已经相等,所以期望操作次数为

第三和第四个测试用例的期望操作次数分别为