CF41E 3-cycles 题解
题意:构造一张点数为 $n$ 的没有三元环的连通无向图,最大化边数。
思路
我们知道,二分图不存在长度为奇数的环。考虑造一张完全二分图 $K_{x,y}$,此时边数为 $xy$。
问题转化为已知 $x+y=n$,最大化 $xy$。
$$ \begin{aligned} &xy\\ =&x(n-x)\\ =&-x^2+nx\\ &x_{\text{对}}=\dfrac n2 \end{aligned} $$
所以 $x$ 取 $\left\lfloor\dfrac n2\right\rfloor$ 时 $xy$ 有最大值 $\left\lfloor\dfrac n2\right\rfloor\left\lceil\dfrac n2\right\rceil$。
代码
#include <cstdio>
int main()
{
int n;scanf("%d", &n);
printf("%d\n", (n >> 1) * ((n >> 1) + (n & 1)));
for(int i = 1;i <= n >> 1;++i)
for(int j = (n >> 1) + 1;j <= n;++j)
printf("%d %d\n", i, j);
return 0;
}