一共有 Q+1 位玩家依次开启宝箱,小塔也在其中。有些玩家可以优先开启黄金宝箱(黄金不足时开启白银宝箱),有些玩家只能开启白银宝箱。求出在所有排队顺序中,小塔至少成功开启一个宝箱的排列数量。
预处理组合数和排列数: 由于数据量较大(最大到3000),可以使用杨辉三角预处理出组合数 C(n, m) 和排列数 A(n, m),以便在后续计算中快速查询。
分配两类玩家: 将其他玩家分为两类:属性值 ≤ T 的玩家(可以优先开启黄金宝箱,黄金不足时开启白银宝箱)和属性值 > T 的玩家(只能开启白银宝箱)。统计这两类玩家的数量分别为 n1 和 n2。
在游戏周年庆中,主办方准备了 M 个黄金宝箱和 M 个白银宝箱,所有宝箱排成一列等待开启。到场的 Q+1 位玩家随机排成一队,依次获取宝箱。每位玩家拥有一个属性值,其中米小游的属性值为 K,其他 Q 位玩家的属性值分别为 a1,a2,…,aQ。
系统设定了一个阈值 T。对于普通玩家:若其属性值 ≤T,则优先开启黄金宝箱,若黄金宝箱已空则开启白银宝箱;若其属性值 >T,则只能开启白银宝箱。若轮到时对应宝箱已空,该玩家将空手离场。
米小游作为全勤玩家拥有特殊权益:若她的属性值满足 K≤T,她可以无视限制,在黄金和白银宝箱中任意选择(只要还有任何宝箱剩余,她就能成功开启);若 K>T,她将失去特权,只能开启白银宝箱。
米小游想知道,在所有玩家随机排列的 (Q+1)! 种排队顺序中,有多少种顺序能使她至少成功开启一个宝箱。答案可能很大,请输出其对 109+7 取模后的结果。
约束:K,M,Q 均为不超过 1000 的正整数,1≤T≤K,每位其他玩家的属性值 ai 也均为不超过 K 的正整数。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册