ARC009C

见标题进系列
翻译出来挨打

考虑 N=K 的情况,显然就是一个错排数问题:N 个有编号的球和 N 个有编号的盒子,每个盒子能且仅能放一个球,能令每个盒子中的球的编号和盒子的编号都不一样的方案数。这里简单推导一下:

Di 表示 i 个请柬都没有放在应有位置上的方案数。

考虑第 1 个球,它显然不能放在 1 号盒子,也就是说它总共有 i1 种可能的选择。

假设 1 号球放在了第 k 号盒子里,那么考虑第 k 号球,它现在有两种选择:

  • 放在 1 号盒子
  • 不放在 1 号盒子

如果放在了 1 号盒子,那么剩下的 i2 个球都不会受影响,此时方案数等于 Di2
如果没有放在 1 号盒子,那么此时的 1 号盒子就相当于第 k 号盒子(第 k 号球不能放在里面),其他球不受影响,相当于只有一个 1 被拿走了,方案数等于 Di1

由于 1 号球共有 i1 种选择,因此我们有递推式:

{D1=0,D2=1Di=(i1)×(Di1+Di2)

推完这个之后,我们再来看 N>K 的情况。显然的,在 N 个请柬里随意选出 K 个,每种方案数就是 DK

也就是说,总方案数即为:

(NK)×DK

组合数取模可以用 Lucas 定理

posted @   untitled0  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示