[LG5377][THUPC2019]鸽鸽的分割

本文探讨了圆上n个点两两连线时,平面最多被分割成多少部分的问题。通过应用欧拉公式,得出分割块数的数学表达式,并提供了C++代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意:有一个圆,圆上有$n$个点,将这几个点两两连接,问最多分成几部分

题解:发现这相当于一个平面图,由欧拉公式得($F$为平面分割块数,$E$为平面图边数,$V$为平面图点数):
$$
F=E-V+2
$$
可知最优解不存在三线共点。

$V=n+\binom n4$,即圆上原来的$n$个点,和任意四个点会产生一个交点

$E=n+\binom n2+2\binom n4$,即原来的$n$条弧,任意两个点产生一条线段,以及每个点增加两条线段

且圆外空间不算一部分。故答案为$1+\binom n2+\binom n4$

卡点:

 

C++ Code:

#include <cstdio>
#include <iostream>
long long n;
int main() {
	std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
	while (std::cin.good() && std::cin >> n) {
		std::cout << 1 + n * (n - 1) / 2 + n * (n - 1) / 2 * (n - 2) / 3 * (n - 3) / 4 << '\n';
	}
	return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/11085448.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值