employ

· · 题解

f_{i,j,k} 是前 i 位,当前有 j 个人寄了,有 kx 满足 1 \le x \le i \land c_x \le j,只考虑所有 c \le j​ 的人的排列的方案数。

t_ic_x = ix 的个数,st 的前缀和。

直接转移,cj 变大的时候枚举的要填在前面的 c_x = j+1 的个数。

答案就是 \sum\limits_{i=0}^{n-m}{f_{n,i,s_i}(n-s_i)!}

一层里面所有 c 之和是 O(n) 的,因此总时间复杂度是 O(n^3)