首页 > 其他分享 >P5441

P5441

时间:2024-07-06 08:58:08浏览次数:14  
标签:dfrac sum times cdots 条边 P5441

P5441 & blog

神仙题目。

tips:后面把 \(4\) 个点说成一个组。


我们先考虑一个组怎么连才不是强联通的。

  1. 一个点 A 向另外三个点 BCD 连一条有向边。

  2. 在不满足第一种的情况下,BCD 向另一个点 A 连一条有向边。

  3. 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\) 的情况下是个凸函数,那么:

\[\sum^n_{i = 1} C^3_{d_i} \ge n \times C^3_{\frac{n - 3}{2}} \]

在 \(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;
	}
}

标签:dfrac,sum,times,cdots,条边,P5441
From: https://www.cnblogs.com/Carousel/p/18286878

相关文章