還沒寫完
A. 島嶼
題意簡述:有 \(2n\) 個島。給定 \(x, y\),其中 \(2x+y=n\)。已知島 \(i, i+n\) 之間有連邊。\([1, x] \cup [n+1,2n-x]\) 的島是紅色,其餘是白色。現在要新增 \(n\) 條邊,每條邊的兩個端點的顏色不能相同。求圖中的期望連通塊數量。
若我們將 \([1, n]\) 和 \([n + 1, 2n]\) 的島分別看作一組,那麼這兩組的前 \(x\) 個元素形如 \(1-1\),中間 \(y\) 個形如 \(0-1\),後 \(x\) 個形如 \(0-0\)。
比如這個例子中 \(x = 4, y = 2\)。
因為兩組中的對應位置間初始已經有連邊,即每個點的度數均為 \(1\)。此時要新加 \(n\) 條邊,且邊的端點互不相同,也就是說新圖中每個點的度數都應該增加 \(1\),即為 \(2\)。而如果一個連通塊中所有點的度數均為 \(2\) 則這個連通塊是一個環。問題變成求圖中環的期望數量。
設計 DP 狀態 \(f(A, B, C)\) 表示有 \(A\) 個 \(1-1\),\(B\) 個 \(0-0\),\(C\) 個 \(0-1\) 的期望環的數量。那麼答案為 \(f(x, x, y)\)。
考慮轉移。
-
\(C = 0\):
即只有 \(A\) 個 \(1-1\) 和 \(B\) 個 \(0-0\)。因為能加的邊的兩端點的顏色不能相同,所以不能在 \(A, B\) 內部連邊,即要從 \(A, B\) 中分別選一條邊相連。而連線後 \(1-1-0-0\) 可以視作 \(1-0\) 邊,而 \(1-1,0-0\) 邊的數量分別減少。即 \(f(A, B, 0) = f(A - 1, B - 1, 1)\)。
-
\(C > 0\):
我們考慮分析第一條 \(0-1\) 邊。
-
如果連自環,即在這兩個點間再加一條邊,那麼環數會增加 \(1\),\(0-1\) 邊數量會減少 \(1\)。機率為 \(\dfrac 1{A+B+C}\)。
-
如果這條 \(0-1\) 邊與另一條 \(0-1\) 邊相連,那麼 \(0-1-0-1\) 將合併成 \(0-1\),即 \(0-1\) 邊數量減少 \(1\)。機率為 \(\dfrac{C-1}{A+B+C}\)。
-
如果這條 \(0-1\) 邊的 \(0\) 與另一條 \(1-1\) 邊的 \(1\) 相連,那麼 \(1-0-1-1\) 可以看作 \(1-1\)。\(1-1\) 邊數量減少 \(1\) 又增加 \(1\) 相當於不變,而 \(0-1\) 邊的數量減少 \(1\)。機率為 \(\dfrac A{A+B+C}\)。
-
如果這條 \(0-1\) 邊的 \(1\) 與另一條 \(0-0\) 邊的 \(0\) 相連,與上面類似,\(0-0\) 邊數量減少 \(1\) 又增加 \(1\) 相當於不變,而 \(0-1\) 邊的數量減少 \(1\)。機率為 \(\dfrac B{A+B+C}\)。
綜上 \(f(A, B, C) = \dfrac1{A+B+C} (f(A,B,C-1)+1) + \dfrac{C-1}{A+B+C}f(A,B,C-1) + \dfrac A{A+B+C}f(A,B,C-1) + \dfrac B{A+B+C}f(A,B,C-1)\)。化簡後是 \(f(A,B,C) = f(A,B,C-1)+\dfrac1{A+B+C}\)。
-
綜上:
你發現從 \(f(x,x,y)\) 開始 DP 能用到的 DP 狀態都滿足 \(A = B\),所以可以進一步最佳化成二維: