Gravatar
YunQian
积分:30
提交:12 / 12

Pro2069  Marisa


对于一个「可调整的」 $n\times n$ 的 $01$ 矩阵,考虑在每一行与每一列的两个点间连一条边。

那么我们将得到一个 $2n$ 个点,$2n$ 条边的无向图,图中的每个连通块都是一个边数为偶数的简单环

https://blog.csdn.net/yanshannan/article/details/77453049 给出了一个图示。

可以发现,对于一个连通块,交换任意两行或两列之后,这些点仍然保持联通。

因此,每个连通块的大小确定了一个「可调整的」矩阵的等价类。

现在相当于把 $2n$ 个点拆分成若干连通块,求方案数。可以发现这里连通块的大小必须 $\ge 4$。

显然这等价于把 $n$ 无序地拆分成若干个 $\ge 2$ 的数。

考虑 DP,设 $f(i,j)$ 表示将 $i$ 无序地拆分成 $j$ 个 $\ge 2$ 正整数的方案数(其中 $i\ge 2j$),则有:

$$f(i,j)=f(i-2,j-1)+f(i-j,j)$$

其含义为,若拆分出的最小数为 $2$,那么相当于将除去 $2$ 后剩下的 $i-2$ 分成 $j-1$ 份;否则我们把拆出的每个数都减一,这部分的方案数就与 $f(i-j,j)$ 一一对应。

初值为 $f(0,0)=1$,答案为 $\sum_{2j\le n} f(n,j)$。

于是就做完了,时间复杂度 $O(n^2)$。




2022-07-15 15:53:18    
我有话要说
暂无人分享评论!