解析
令 (hi)(h_i)(hi )( 表示前 iii 天中,难度较高的天数的数量。令 (fi)(f_i)(fi ) 表示 (cj)(c_j)(cj ) 小于等于 iii 的 jjj 的数量。我们考虑对于难度较高的天,先不分配具体是谁参加面试。最后答案乘以 (hn!)(h_n!)(hn !) 即可。令 (gi,j,k)(g_{i, j, k})(gi,j,k ) 表示前 iii 天中,有 jjj 天是不录用人的,且剩下 (i−j)(i-j)(i−j) 天中有 kkk 天是没有确定具体是谁去面试的方案数。我们称 (ck≤j)(c_k \leq j)(ck ≤j) 的人为 “弱人”,其它人为
“强人”。若 (si+1=0)(s_{i + 1} = 0)(si+1 =0),(gi+1,j+1,k−l+=gi,j,k∗(cj+1−cjl)∗(kl)∗l!)(g_{i + 1, j + 1, k - l} += g_{i, j, k} * \binom{c_{j + 1} - c_{j}}{l} * \binom{k}{l} * l!)(gi+1,j+1,k−l +=gi,j,k ∗(lcj+1 −cj )∗(lk )∗l!)。若 (si+1=1)(s_{i + 1} = 1)(si+1 =1),且下一天录用人,(gi+1,j,k+1+=gi,j,k)(g_{i + 1, j, k +
1} += g_{i, j, k})(gi+1,j,k+1 +=gi,j,k ) 。若 (si+1=1)(s_{i + 1} = 1)(si+1 =1),且下一天不录用人, (gi+1,j+1,k−l+=gi,j,k∗(fj−(j−hi))∗(cj+1−cjl)∗(kl)∗l!)(g_{i + 1, j + 1, k - l} += g_{i, j, k} * (f_j - (j - h_i)) * \binom{c_{j + 1} - c_j}{l} * \binom{k}{l} * l!)(gi+1,j+1,k−l +=gi,j,k ∗(fj −(j−hi ))∗(lcj+1 −cj
)∗(lk )∗l!)。时间复杂度 (O(n3))(O(n^3))(O(n3))。
答案