箱球模型学习笔记
我是蒟蒻,可能有错,还请指出。
箱球模型有很多种,基本都是按照小球是否不同,箱子是否不同和是否允许空箱分类的。
我们设箱子数为
\color{green}{1.\text{球不同,箱不同,允许空箱}}
很简单。对于每一个球,我们可以把它放进
\color{green}{2.\text{球同,箱不同,不允许空箱}}
也是很简单。注意到球是相同的,所以我们可以把球排成一列,名字都叫没有差别小球球,都是一家人,顺序不重要,只要是一列就好。然后我们可以把
\color{green}{3.\text{球同,箱不同,允许空箱}}
和2很像,但是箱子能空箱。空箱实在是太难办了,于是我们考虑惩罚箱子。我们可以硬送给箱子一个小球,但是那样我们就会WA,所以让我们把题目改成:有
新手期已过
箱子相同都是难的(哭)
\color{orange}{4.\text{球不同,箱同,不允许空箱}}
该引入第二类斯特林数(Stirling Number,OI界也有人简称为SN(?))了。
先上答案:
再详细点,就是:
对于我这种蒟蒻&小奥人这个公式简直是太吓人了,这和小学奥数的组合数学完全不一样啊
不过幸好的是第二类斯特林数的递推公式很简单。
这个东西以我的水平还是可以解释解释的。在
1.让一个箱子在
即可。
2.我们把小球随便放入一个箱子,因为没有对箱子做出新的任何限制,我们只要算出
即可。注意因为随便选一个箱子都行,所以要多乘一个
\color{orange}{5.\text{球不同,箱不同,不允许空箱}}
我们发现它与4的区别仅在箱子不同了。我们只要在4的基础上乘上一个
\color{orange}{6.\text{球不同,箱同,允许空箱}}
我们发现它与4的区别仅在允许空箱。于是我们考虑枚举有多少个箱子是非空的。最后用一个sigma求和就行。答案:
\color{red}{7\&8.\text{球同,箱同,允许(第七问)/不允许(第八问)空箱}}
这不是拆数问题吗
我们只需要求出递推公式,对于答案的具体求值,我们可以使用DP(动态规划)。不过由于这个DP太简单了,说是递推也可以:P
先给第七题答案:
第一项的意思是说“如果一个小球都没有的话,那就只有一种方法:不放;如果只有一个箱子的话也只有一个方法:把所有小球都放进去”,第二项的意思是说“如果一个箱子都没有,还要放球进去的话,那肯定是不可能的”,第三项的意思就是“如果球比箱子还少,那就把一定没用的箱子丢了,反正箱子都一样”,而第四项的意思就是“我们可以把盒子放满,如果不想放满也是可以的”。
接下来是第八题的答案:
第一项的意思就是说“如果没有箱子也没有小球,那唯一一种方法就是啥也不干”,第二项的意思是说“如果没箱子或者没小球而且还不是箱子小球一起没有的话。那压根不可能。如果小球比箱子还少,那就一定有空箱,也是不符合要求的。”,第三项说的是“我们可以考虑先给每个箱子配一个小球,接下来问题就变成了第七问的问题。”