#1511. 哆啦 A 梦的神奇铜锣烧储存系统
哆啦 A 梦的神奇铜锣烧储存系统
说明
哆啦 A 梦有一个神奇的铜锣烧储存系统,由 个特殊的宝箱组成。每个宝箱里都装着哆啦 A 梦最喜欢的铜锣烧,但奇怪的是,这些铜锣烧有时会神秘地消失又出现!哆啦 A 梦发现,这些宝箱里只有 个是真正装着铜锣烧的,其余的都是空的。
有一天,哆啦 A 梦想和大雄分享一些铜锣烧。他首先凭直觉选出了 个他认为最有可能装着铜锣烧的宝箱。然后,这个系统会自动对剩下的 个宝箱施展魔法,随机打开 个空箱子,最后只剩下 个宝箱是关闭的。
哆啦A梦很好奇:这剩下的 个宝箱里,铜锣烧的期望数量是多少?由于这个系统具有魔法属性,你需要输出答案对 取模的结果。
形式上,给定正整数 ,其中:
表示宝箱的总数 表示实际装有铜锣烧的宝箱数量 表示哆啦 A 梦最初选择的宝箱数量 表示剩余未打开的宝箱数量(不包括最初选择的 个宝箱) 输入数据保证有效,满足 , , , 。
游戏开始时,哆啦 A 梦选择 个宝箱(不知道里面装的是什么)。然后,从剩余的 个宝箱中,系统随机打开 个空宝箱,最终留下 个未打开的宝箱。
求这 个未打开的宝箱中铜锣烧的期望数量(模 )。
如果剩余空箱不足 个,则打开所有剩余空箱,其他箱子不动。
输入格式
输入一行四个整数 , , , (, , , )。
输出格式
一个整数,表示在模 意义下的铜锣烧期望数量。
样例
10 3 2 4
199648873
提示
这个问题需要用到素数模 的模运算。你需要用到费马小定理来求模逆元。
费马小定理:如果 是一个素数, 是一个不能被 整除的整数,那么:
这意味着 模 的模逆元是 。
你需要预先计算 以内的阶乘及其模逆元,以便高效地计算模 的组合数。
可以考虑使用组合数学和概率论。注意,系统只能打开空盒子,这会显著影响概率计算。
相关
在下列比赛中: