题解:CF736D Permutations

问题把每条限制 \((a_i,b_i)\) 看成在 \(n\times n\) 的 01 矩阵 \(A\) 中把第 \(a_i\) 行第 \(b_i\) 列设为 \(1\),其余未出现的位置为 \(0\)。排列满足全部限制当且仅当从左边的 \(n\) 个行点到右边的 \(n\) 个列点存在一条完美匹配,这个匹配数在 \(\mathbb F_2\) 上正是 \(\det A\)。题目已告知原本匹配数为奇数,即 \(\det A=1\),因此 \(A\)\(\mathbb F_2\) 上可逆。

删除一条限制就是把对应的 \(1\) 改回 \(0\),相当于令新的矩阵 \(B=A+E_{pq}\)(这里 \(p=a_i-1,\;q=b_i-1\),加法在 \(\mathbb F_2\) 中即按位异或)。利用 Sherman–Morrison 公式在域 \(\mathbb F_2\) 上的版本得到 \(\det B=\det A\bigl(1+(A^{-1})_{qp}\bigr)\)。因为 \(\det A=1\),删边后仍是奇数当且仅当 \((A^{-1})_{qp}=0\)

于是先用位运算优化的高斯-约旦消元在 \(\mathbb F_2\) 上把

\[\bigl[\,A\mid I_n\bigr]\longrightarrow\bigl[I_n\mid A^{-1}\bigr] \]

求出逆矩阵。接着逐条限制直接读取对应元素即可。

时间复杂度 \(O\bigl(\tfrac{n^3}{\omega}+m\bigr)\)

link

posted @ 2025-07-22 10:50  薛儒浩  阅读(28)  评论(0)    收藏  举报