#P14043. [SDCPC 2019] Flipping Game
[SDCPC 2019] Flipping Game
Description
小 Sub 喜欢玩游戏 。在这款游戏中,有 盏灯,编号从 到 ,分别连接着 个开关。这些灯起初可能是亮着也可能是灭着的,按下第 个开关会将第 盏灯的状态切换为相反状态(也就是说,如果第 盏灯是亮的,按下开关后变为灭的;若本来是灭的,按下后变为亮的)。
游戏一共进行恰好 轮,每一轮玩家必须按下恰好 个不同的开关。游戏的目标是在结束时让所有的灯达到目标状态。
小 Sub 正在遇到一道很难的挑战,他实在解不出来。作为他的朋友,你的任务是帮他计算有多少种不同的按开关方法可以达成目标,并将结果对 取模后告诉他。
当且仅当存在整数 ,,,使得在第一种方法的第 轮按了第 个开关而第二种没有,或者反之,则认为两种按法不同。
Input Format
有多组测试数据。输入的第一行为一个整数 (约为 ),表示测试用例的组数。对于每组测试数据:
第一行包含三个整数 ,,(,)。
第二行是一个由 和 组成的长度为 的字符串 ,表示灯的初始状态。若第 个字符是 1,则第 盏灯初始为亮,否则为灭。
第三行是一个由 和 组成的长度为 的字符串 ,表示灯的目标状态。若第 个字符是 1,则第 盏灯最终应为亮,否则应为灭。
保证 的测试数据不会超过 组。
Output Format
对于每组测试数据输出一行一个整数,表示满足条件的方案数。
3
3 2 1
001
100
3 1 2
001
100
3 3 2
001
100
2
1
7
Hint
对于第一组示例测试,小 Sub 可以在第 轮按下第 个开关,在第 轮按下第 个开关;或第 轮按下第 个开关,第 轮按下第 个开关。所以答案是 。
对于第二组示例测试,小 Sub 只能在唯一一轮按下第 个和第 个开关。所以答案是 。
由 ChatGPT 5 翻译
京公网安备 11011102002149号