Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB

#1242. 翻硬币

统计

题目描述

小Z离开家的时候忘记带走了钱包,掉下的硬币在桌子上排成了一列。正在等着哥哥回来的小D坐在桌子旁边,无聊地翻着桌子上的硬币。
出于某种爱好,小D一次一定会同时翻转 M 枚硬币。由于小D是一个爱动脑的小学生,这样进行了若干次之后她很快想到了一个问题:有多少种方法能够在 K 次翻转后把硬币由原来的状态变成现在这样呢?
因为小D是个好学的小学生,她只需要你告诉她方案数对 1000000007 取模的值以方便她进行验算就可以了。

输入格式:

第一行,包含三个字符 N,K,M ,表示硬币的数量(N<=100),翻转的次数(K<=100)和每次翻转的硬币数量(M<=N)。
第 2~3 行,包含 N 个字母,表示硬币在一开始的状态和最终要变成的状态。1 表示正面而 0 表示背面。

输出格式:

一行包含一个整数,表示方案数对 1000000007 取模的值。

输入样例#1:

3 2 1
100
001

输出样例#1:

2