P5441 & blog
神仙題目。
tips:後面把 \(4\) 個點說成一個組。
我們先考慮一個組怎麼連才不是強聯通的。
-
一個點 A 向另外三個點 BCD 連一條有向邊。
-
在不滿足第一種的情況下,BCD 向另一個點 A 連一條有向邊。
-
AB 之間連有向邊,CD 之間連無向邊,然後 AC 和 AD 連一條有向邊,BC 和 BD 也連一條有向邊。
以上的三種情況沒有重疊,可以覆蓋所有非強連通組。
接下來我們只需要最小化這一些組數即可。
第一中:
假如第 \(i\) 個點的出度為 \(d_i\),那麼這個點是第一個條件中的 A 的情況數為 \(C^3_{d_i}\)。
所以第一類總數為 \(\sum_{i = 1}^n C^3_{d_i}\)。並且 \(\sum_{i = 1}^n d_i = n \times \dfrac{n - 3}{2}\)。
又因為 \(C_x^3 = x(x - 1)(x - 2)\),所以在 \(x \ge 3\) 的情況下是個凸函式,那麼:
在 \(d_1 = d_2 = d_3 = \cdots \cdots = d_n\) 時,等號成立。所以最小值就是當 \(d_1 = d_2 = d_3 = \cdots \cdots = d_n = \dfrac{n - 3}{2}\) 時的答案。
所以第一組的總和為 \(n \times C^3_{\frac{n - 3}{2}} = \dfrac{n(n - 3)(n - 5)(n - 7)}{48} = \dfrac{n(n - 3)(n ^ 2 + 6 \times n - 31)}{48}\)。
第二和第三種:
這組透過構造可以是答案變為 \(0\)。構造方法如下:
首先我們需要滿足第一組的條件,所以每一個點必須連 \(n - 1\) 條邊,而其中有 \(\dfrac{n - 3}{2}\) 的邊都是向外得邊。
從這個點連出的的 \(1\) 到第 \(\dfrac{n - 3}{2}\) 條邊都是從自己出發的有向邊,第 \(\dfrac{n - 1}{2}\) 和第 \(\dfrac{n - 3}{2}\) 條邊是無向邊,其餘的都是到自己的邊。
當 \(n = 5\) 時,圖長這樣:
這樣子就不能滿足第二和第三種的條件了。所以這兩種的答案為 \(0\)。
所以答案為 \(\dfrac{n(n - 3)(n ^ 2 + 6 \times n - 31)}{48}\)。
最後給出構造的程式碼:
for(int i = 1;i <= n;i++)
{
for(int j = i + 1;j <= i + (n + 1) / 2;j++)
{
a[i][(j - 1) % n + 1] = 1;
}
}