[洛谷P5377][THUPC2019]鸽鸽的分割
2024-08-22 05:50:17
题目大意:有一个圆,圆上有$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;
}
最新文章
- Spark源码编译并在YARN上运行WordCount实例
- spring mybatis 事务配置及使用
- 【算法与数据结构】冒泡、插入、归并、堆排序、快速排序的Java实现代码
- Node.js Web 开发框架大全《中间件篇》
- input框内默认文字点击消失
- SQL自定义函数split分隔字符串
- PR曲线平滑
- poj 1192最优连通子集(简单树形dp)
- linux网络编程学习笔记之五 -----并发机制与线程�
- cf500B New Year Permutation
- java Quartz定时器任务与Spring task定时的几种实现,
- HDU 1532 Drainage Ditches
- LeetCode OJ 11. Container With Most Water
- java类初始化,使用构造方法
- Git点滴记录
- LeetCode之“链表”:Remove Nth Node From End of List
- MySQL 导入导出数据库、表
- XPosed 示例
- VUE 多页面配置(一)
- 人民币金额转化汉字的java写法