Sol
注意到从大到小做一定更加方便,因为后面的限制比前面的更加紧。
假设有 \(b_i\) 个不同的 \(j\) 满足 \(a_j=i\),那么考虑 \(f_{i,j}\) 表示所有 \(\ge i\) 的限制已经做完了,且剩下了 \(j\) 个人的方案数。
不难得到 \(f_{i,j}=\displaystyle\sum_{k=0}^{\frac{n}{i}}f_{i+1,{j-(b_i-k\times i)}}\times (\dfrac{(j+i\times k)!}{(i!)^k \times j! \times k!})\)。
Code
Link。