AGC006F Balckout
題意
給定一個 $n\cdot n$ 的網格圖,有些格子爲黑。如果 $(x,y),(y,z)$ 均爲黑,則 $(z,x)$ 也爲黑,求最終黑色點的個數。
$1\leq n,m\leq 10^5$
題解
該題解主要證明其他博客上很顯然的結論。。。
很容易想到若存在 $(x,y)$ 則建圖 $x\rightarrow y$ 。
考慮一個弱聯通圖的情況,而整圖的情況可以看成弱聯通圖的相加。
由於操作可以分爲 $y$ ,指向 $y$ 的與被 $y$ 指的,有三種情況,考慮對該圖三染色,即若有 $x\rightarrow y$ 那麼 $col_y=col_x+1\bmod 3$ ,注意圖是弱聯通。
那麼會發生一下三種情況之一。
- 不存在三染色,即存在一條邊滿足 $col_y\neq col_x+1\bmod 3$
- 存在三染色,但僅用一/兩種顏色
- 存在三染色,且三種顏色均用了
先考慮情況 $2$ 和 $3$ ,最後考慮情況 $1$ 。
情況二
結論:黑色點的個數等於原先邊的個數。
若圖只能用 $1/2$ 種顏色那麼肯定不會存在 $x\rightarrow y,y\rightarrow z$ 的邊,那麼不會產生新的邊,即不會有新的黑點產生。
情況三
結論:我們設 $c_{0/1/2}$ 分別表示 $col=0/1/2$ 的個數,那麼黑點個數爲 $c_0c_1+c_1c_2+c_2c_0$ ,即集合按照 $0/1/2$ 順序連邊。
如果圖能被三染色那麼肯定存在一條鏈 $u\rightarrow v\rightarrow w$ 滿足 $col_u=0,col_v=1,col_w=2$ 。
顯然這三個點肯定滿足上述結論。
考慮歸納構造,若當前圖 $G$ 滿足構造,新加入一條邊 $u\rightarrow p$ 。(由於 $u,v,w$ 等價故我們僅用考慮 $u$ 的情況)
定義 $\{0/1/2\}$ 表示 $col=0/1/2$ 點的集合。
由於 $\{2\}\rightarrow u,u\rightarrow p$ ,那麼 $p\rightarrow\{2\}$ 。
由於 $p\rightarrow \{2\},\{2\}\rightarrow \{0\}$ ,那麼 $\{0\}\rightarrow p$ 。
可以發現無法存在其餘邊的出現,得證。
如果 $p\rightarrow u$ 類似,這裏不在闡述。
情況一
結論:黑點個數爲所在弱聯通塊點的個數的平方。
先去考慮一個子問題,由於三染色過程形成的是一個 $dfs$ 樹,而若存在矛盾僅能爲返祖邊,那麼我們肯定能將其若聯通塊進行三染色並且會附贈一些矛盾的邊。
若先不考慮矛盾的邊那麼依據情況三我們已經得到一個 $\{0\}\rightarrow \{1\},\{1\}\rightarrow \{2\},\{2\}\rightarrow \{0\}$ 的邊集。
解決當前問題的小結論
先去證明一個更小的結論,若在一個三染色圖上加入一個矛盾邊那麼肯定能讓一個集合 $\{x\},x\in\{0,1,2\}$ 滿足 $\{x\}\rightarrow \{x\}$ 。
證明這個也很簡單,我們繼續沿用情況三的 $u,v,w$ ,證明也和情況三的類似。
- 若存在 $u_1\rightarrow u_2 $ ,根據 $u_2\rightarrow \{1\}$ 可得 $\{1\}\rightarrow u_1$ ,又由於 $u_1\rightarrow \{1\}$ ,那麼 $\{1\}\rightarrow \{1\}$ 。
- 若存在 $u\rightarrow w$ ,由於 $w\rightarrow u$ 可得 $u\rightarrow u$ 。可以歸納到上述證明。
得證。
繼續考慮情況 $1$ 的證明,根據當前的小結論可以得到該圖存在一個 $\{x\}\rightarrow \{x\}$ 的邊,不妨將其設爲 $\{0\}\rightarrow \{0\}$ 。
由於 $\{0\}\rightarrow\{0\},\{0\}\rightarrow \{1\}$ 可得 $\{1\}\rightarrow \{0\}$ 。
由於 $\{1\}\rightarrow \{0\},\{0\}\rightarrow \{1\}$ 可得 $\{1\}\rightarrow \{1\}$ 。
由於 $\{1\}\rightarrow \{1\},\{1\}\rightarrow \{2\}$ 可得 $\{2\}\rightarrow \{1\}$ 。
同理可得 $\{1\}\rightarrow \{2\},\{2\}\rightarrow \{2\}$ 。
由於任意兩點均可以直接到達,圖爲完全圖,那麼黑點個數顯然爲弱聯通塊個數的平方。
得證。