#P2182. 翻硬币

翻硬币

翻硬币

  • 时间限制:1 秒
  • 内存限制:128 MiB

题目描述

桌上有 NN 枚排成一列的硬币。每次操作必须同时翻转其中恰好 MM 枚硬币。

给定所有硬币的初始状态和目标状态,求恰好进行 KK 次操作后从初始状态变为目标状态的方案数。

答案对 109+710^9+7 取模。

输入格式

第一行包含三个整数 N,K,MN,K,M,分别表示硬币数量、操作次数和每次操作翻转的硬币数量。

第二行包含一个长度为 NN01 字符串,表示硬币的初始状态。

第三行包含一个长度为 NN01 字符串,表示硬币的目标状态。

其中 1 表示正面,0 表示背面。

输出格式

输出一行一个整数,表示方案数对 109+710^9+7 取模后的值。

样例输入 1

3 2 1
100
001

样例输出 1

2

样例解释

存在两种方案:

  • 100101001100\to101\to001
  • 100000001100\to000\to001

数据范围

子任务编号 分值 特殊限制
1 30 N4N\le4K5K\le5
2 N10N\le10
3 40 无特殊限制

对于全部数据,保证 1N1001\le N\le 1000K1000\le K\le 1000MN0\le M\le N

上述三层由来源给出的 30%、60%、100% 累计范围转换为增量分值,未改变原限制语义。