Luogu-P4859 已经没有什么好害怕的了
题解
将 (a) 和 (b) 两个数组都排序。
考虑恰好 (k) 个 (a_i>b_i) 的 (i) 并不好满足,那么计算至少 (k) 个满足 (a_i>b_i) 的 (i) 的方案数,“至少”的实现方法是钦定 (k) 个 (a_i>b_i) ,其余的都不确定。再使用二项式反演反演回去。
设 (f_{i,j}) 表示将 (a_1sim a_i) 排序后一一与 (b) 中若干个数配对,钦定了 (j) 个 (k) 满足 (a_k>b_k) 的方案数(只考虑钦定的数的方案数,也就是说如果第 (i) 位没有 (a_i>b_i) 的时候,不需要乘上系数转移)。转移很简单:(f_{i,j}=f_{i-1,j}+f_{i-1,j-1}cdot (l_i-j+1)) 。边界是 (f_{0,0}=1) 。这样 (f_{1,j}=f_{0,j}+f_{0,j-1}cdot (l_i-j+1)) 。
设 (g_i) 表示恰好 (i) 个 (j) 满足 (a_j>b_j) ,那么 (f_{n,i}cdot (n-i)!=sum_{j=i}^n g_jinom{j}{i}) ,所以(g_k=sum_{i=k}^n f_{n,i}cdot (n-i)!cdot inom{i}{k}(-1)^{i-k}) .