ARC186A 题解 和 官方题解ChatGPT翻译版

题意简述

对于一个 \(N\times N\)\(01\) 矩阵 \(A\),令 \(C_i = \sum\limits_{j = 1} ^ N A_{i, j}, R_j = \sum\limits_{i = 1} ^ N A_{i, j}\)

\((C_1,\dots, C_N, R_1, \dots, R_N)\) 对应相同的矩阵归到同一个等价类,对于某个等价类,集合 \(S\) 中的元素是满足对于该等价类中所有 \(A\),都有 \(A_{i, j}\) 相等\((i, j)\)

给出 \(N\),有 \(Q\) 次询问,每次询问一个 \(k\)是否存在 \(|S| = k\) 的非空等价类,其中 \(N\le 30, 1 \le Q\le N ^ 2 + 1, 0\le k\le N^2\)

题解

首先,对于 \(01\) 矩阵形态无限制,可以考虑放在一个 \(N + N\) 的完全二分图上边定向,即:

  • \(A_{i, j} = 1\)\(r_i\)\(c_j\) 连边。
  • \(A_{i, j} = 0\)\(c_j\)\(r_i\) 连边。

发现此时 \(c, r\) 的入度(或者出度,总和为 \(N\))与 \(C, R\) 的限制等价。

再考虑对于所有度数相同的图都有 \(A_{i, j}\) 相等的限制,对于任意两个同一等价类且不同的定向后二分图 \(A, B\),先删除都存在的边,发现此时两者的 \(C, R\) 仍然相同,但不存在都存在的边,且剩下的边都是相反的,所以对于任意点都有出度等于入度,那么此时整个图是由多个环构成的,发现还存在的边在环内,可以通过翻转整个环使 \(C, R\) 不变。

于是得到结论:\(A_{i, j}\) 不固定当且仅当其在环上。再说的清楚一点,因为通过上面的过程可以发现两个 \(A, B\) 可能不同的只有在环上的边,且在环上的边可以通过翻转整个环使这条边相反。

然后可以暴力枚举强连通分量的大小来转移答案,假设左边有 \(x\) 个点,右边有 \(y\) 个点,不定的边就有 \(xy\) 条,且二分图上可以构造强连通分量的充要条件是 \(x, y\ge 2\)

那么可以 DP,考虑设 \(f_{i, j, s}\) 为前 \(i\)\(r\) 和前 \(j\)\(c\),强连通分量内的边数为 \(s\),枚举新的强连通分量的大小即可,注意我们只想判断可行性,可以钦定不同强连通分量内的边之间没有交叉。

时间复杂度 \(\mathcal O(n^6)\),常数较小(最大的点跑了 6 ms)。

发现 DP 内记录的值为 01,可以考虑设 \(f_{i, s}\) 为左边选了 \(i\) 个点时,要得到 \(s\) 条强连通分量内边所需的最小 \(j\),应该可以做到 \(\mathcal O(n^5)\)?有时间再补。

\(\mathcal O(n^6)\) 代码

ChatGPT 翻译

以下是 ChatGPT 翻译内容 Update on 2024.11.1 已补

如果有谁看不懂这篇题解或者需要更详细的题解的可以 Luogu 私信我,Sky_Maths,因为我还没看,有空再补。

基于图的重新表述

对于一个元素为0或1的 \(N \times N\) 矩阵 \(A\),考虑从一个完整的二部图构建的有向图。该图的顶点由两部分组成:\((R_1, \dots, R_N)\)\((C_1, \dots, C_N)\),其边的方向如下:

  • 如果 \(A_{i,j}=1\),则边从 \(R_i\) 指向 \(C_j\)
  • 如果 \(A_{i,j}=0\),则边从 \(C_i\) 指向 \(R_j\)

此外,我们称两个图是相似的,如果对于每个顶点,它们的入度和出度相等。我们说图中的一条边是固定的,如果该边在所有相似图中都存在(且方向相同)。

这样的有向 \(K_{N,N}\) 图和 \(N \times N\) 的矩阵之间存在一一对应关系,矩阵中在第 \(i\) 行第 \(j\) 列的元素固定相当于 \(R_i\)\(C_j\) 之间的边是固定的(不论方向如何)。通过这种有向图的重新表述,我们可以对该图进行分析。

解决方案

考虑两个相似的图,检查在移除所有相同方向的边后剩下的部分。根据相似图的定义,剩下图中每个顶点的入度和出度相等。这意味着剩下的图由若干个循环组成。反过来,对于任何图,如果我们将循环中的所有边方向反转,我们就得到了一个与原图相似的图。

因此,如果一条边是循环的一部分,那么它不是固定的。我们可以使用动态规划来确定以下值的可能组合,总时间复杂度为 \(O(N^6)\)(如果常数因子过大,可以预先计算所有情况并硬编码答案):

  • \((R_1, \dots, R_N)\) 中已分配到强连通分量的顶点数量
  • \((C_1, \dots, C_N)\) 中已分配到强连通分量的顶点数量
  • 包含在强连通分量中的边的数量(即,不是固定的)

请注意,由于图是二部的,在创建强连通分量时,必须至少从 \((R_1, \dots, R_N)\)\((C_1, \dots, C_N)\) 中各选择两个顶点。反之,如果两个部分各有两个或更多的顶点,则总是可以实现强连通性。**

这是我自己的内容

我的英语好差啊/ll
不敢发/ll
Excuse me, I can't use English very well, but can we solve problem A in a better time complexity?
Try to use f[i][s] as: the min R points be used when the C use i points and get s edges not on the circle, can it be solved on \(\mathcal O(n^5)\)?

posted @ 2024-10-29 22:21  SkyMaths  阅读(87)  评论(0)    收藏  举报