P2182 翻硬币

    • 59通过
    • 223提交
  • 题目提供者 LittleZ
  • 评测方式 云端评测
  • 标签 动态规划,动规,dp 字符串 高性能
  • 难度 提高+/省选-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    小Z离开家的时候忘记带走了钱包,掉下的硬币在桌子上排成了一列。正在等着哥哥回来的小D坐在桌子旁边,无聊地翻着桌子上的硬币。

    出于某种爱好,小D一次一定会同时翻转 M 枚硬币。由于小D是一个爱动脑的小学生,这样进行了若干次之后她很快想到了一个问题:有多少种方法能够在 K 次翻转后把硬币由原来的状态变成现在这样呢?

    因为小D是个好学的小学生,她只需要你告诉她方案数对 1000000007 取模的值以方便她进行验算就可以了。

    输入输出格式

    输入格式:

    第一行,包含三个字符 N,K,M ,表示硬币的数量,翻转的次数和每次翻转的硬币数量。

    第 2~3 行,包含 N 个字母,表示硬币在一开始的状态和最终要变成的状态。1 表示正面而 0 表示背面。

    输出格式:

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

    输入输出样例

    输入样例#1: 复制
    3 2 1
    100
    001
    输出样例#1: 复制
    2

    说明

    【样例解释】

    100→101→001

    100→000→001

    【数据规模】

    对于 30% 的数据,N ≤ 4,0 ≤ K ≤ 5;

    对于 60% 的数据,N ≤ 10;

    对于 100% 的数据,1 ≤ N ≤ 100,0 ≤ K ≤ 100,0 ≤ M ≤ N 。

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。