ARC186A 官方題解-ChatGPT翻譯

SkyMaths發表於2024-10-29

基於圖的重新表述

對於一個元素為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)\) 中各選擇兩個頂點。反之,如果兩個部分各有兩個或更多的頂點,則總是可以實現強連通性。**

相關文章