CF715E口胡
首先两个排列 \(q,p\) 可以简化成一下模型:
设 \(x[n]\) 表示 \(q[x[n]]=n\),\(y[n]\) 表示 \(p[y[n]]=n\)。
那么对于两个确定的 \(q,p\),对于 \(i\in[1,n]\) 连接 \(x[i],y[i]\),边权为 \(i\)。
可以知道一个图只能代表一对排列。
而他给定的一部分只是给定了一部分边而已,我们将一条已知的链缩起来。于是题目转化为对于所有的 \(k\) 求出有 \(n\) 个节点 \(n-k-1\) 个环以及有 \(m\) 条边的权值没有被确定的这样的图的数量。
很显然 \(m\) 只有一个 \(m!\),所以我们只需要对 \(n\) 个点 \(m\) 个环计数即可,问题有标号。
于是有 \(F[k]=[\frac{x^n}{n!}](\sum_{i=1}\frac{x^i}{i})^k\),可以 \(O(n^3)\) 直接草过去,也可以扒一个多项式全家桶来 \(O(n^2\log n)\)。
当然,能够注意到 \(F[k]=\begin{bmatrix}n\\k\end{bmatrix}\),所以可以斯特林数 \(O(n^2)\) 直接草了,或者也可以第一类斯特林数行直接 \(O(n\log n)\)。