https://atcoder.jp/contests/abc462/tasks/abc462_g
\(n\) 个有标号球,第 \(i\) 个球颜色为 \(a_i\in[1,n]\),给定 \(\{b_n\}\),求有多少种球的排列 \(\{a'_n\}\) 使得 \(a'_i\ne b_i\)。
显然不弱于错排,考虑容斥,需要算钦定 \(k\) 个 \(a'_i=b_i\) 的位置的方案数,
对于一种颜色 \(u\),设 \(\{a_n\}\) 中 \(u\) 出现 \(c_u\) 次,\(\{b_n\}\) 中 \(u\) 出现 \(d_u\) 次,
若钦定了 \(p_u\) 个颜色为 \(u\) 的球,则这些球的排列方案有 \({c_u\choose p_u}{d_u\choose p_u}p_u!\) 种,
考虑所有颜色,则此时钦定方案有 \((n-k)!\prod{c_u\choose p_u}{d_u\choose p_u}p_u!\) 种,
现在只需要对每个 \(k\) 算出所有确定 \(p\) 的方案的贡献之和。
用 OGF 记钦定的个数,则颜色 \(u\) 的方案的 GF 为 \(F_u(x)=\sum\limits_{i\ge 0}{c_u\choose i}{d_u\choose i}i!x^i\),
然后总方案的 GF 为 \(G(x)=\prod F_u(x)\),钦定 \(k\) 个的方案数就是 \(s_k=(n-k)![x^k]G(x)\),
最后容斥一下答案就是 \(\sum\limits_{k=0}^n(-1)^ks_k\)。
https://atcoder.jp/contests/abc462/submissions/76754967