洛谷P2181——对角线
P2181 对角线
原题传送
题目描述
对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点。请求楚图形中对角线交点的个数。
例如,6边形:
输入输出格式
输入格式:
第一行一个n,代表边数。
输出格式:
第一行输出交点数量
输入输出样例
输入样例#1:
3输出样例#1:
0输入样例#2:
6输出样例#2:
15说明
50%的测试数据 3≤N≤100;
100%的测试数据 3≤N≤100000.
思路:
思路来自:https://blog.csdn.net/apro1066/article/details/81224016
首先由于不会有三条对角线交于一点,所以过某一个交点有且只能有2条对角线。
而这两条对角线实质上是确定了4个顶点(也可以看做是一个四边形的两条对角线交于一点,求四边形的数量)。
因此我们只需要确定4个顶点就得到了这个唯一确定的交点。
因此我们只需要求这样4个顶点的搭配有多少个了
也就是从n个顶点中取4个出来(顶点先取后取没有关系,所以是无序):n (n-1) (n-2) * (n-3) / 4!
于是我们就得到了公式: n (n-1) (n-2) * (n-3) / 24
同时为了防止爆掉,但又不想写高精,我们可以采用一种化简的技巧,于是原式可以化为:
n (n-1) / 2 (n-2) / 3 * (n-3) / 4
另外注意的是,数据很大(刚才也提到了)。已知点和边都不可能是负数,所以要用unsigned long long int。
代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{unsigned long long sum,n;scanf("%llu",&n);sum=n*(n-1)/2*(n-2)/3*(n-3)/4; //n个里面取4个点 //原公式:n(n-1)(n-2)(n-3)/24,n很大,连乘会爆unsigned ll ,printf("%llu\n",sum);
}
//题目:对于一个N个定点的凸多边形,他的任何三条对角线都不
//会交于一点。请求图形中对角线交点的个数。
洛谷P2181——对角线相关推荐
- 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)
题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...
- 洛谷P2181 对角线
一般我们见到这种多边形可以认定为n边形,我们可以知道n边形的对角线是n(n-3)/2,因此我们可以推断中间交点的数量,如:四边形对角线交点为 1个:五边形对角线交点为5个:六边形对角线为15个等等所以 ...
- 洛谷P2181 对角线(c语言)
第三篇题解 题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 nn,代表边数. 输出格式 输 ...
- 洛谷P2181对角线题解(C语言)
题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数n,代表边数. 输出格式 输出一行一个整数代 ...
- 洛谷 P2181 对角线
P2181 对角线 传送门 题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 n,代表边数. ...
- 洛谷 - P2181 - 对角线 - 打表 - 组合数学
https://www.luogu.org/problemnew/show/P2181 对于某条对角线,除去从两端出发的对角线,其他的都与它有1个交点. 每个点有(n-3)条对角线,每条对角线和其余C ...
- 洛谷 P2181对角线——排列组合
P2181看到的时候觉得思考难度极大,想要利用图论求解,但没有思路,最后从答案中明白,核心是排列组合,三条对角线不会交于一点,所以任何一点都必须由两条对角线组成--即四个点确定一个交点. 也就是问,顶 ...
- 洛谷P2181 对角线(组合数)
题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...
- 洛谷 P2181 对角线(C语言)
题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 n,代表边数. 输出格式 输出一行一个整数 ...
最新文章
- 存储过程系列之存储过程具体操作过程及sql数据库调用
- CSS多行文本垂直居中
- 软件质量的理解 摘录
- 只需一条信息即可远程利用严重的思科 Jabber RCE缺陷
- 数仓系列 | Flink 窗口的应用与实现
- Windows 程序设计应用开发(上部)
- LCD1602液晶显示屏驱动文件
- 将idea maven项目中webapp文件夹的改为Web Root
- open drain和push pull
- 情人节程序员用HTML网页表白【在一起计时】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- 《架构师》被孟岩表扬,心里高兴
- 最好用的coreldraw2020中文版,安装好后不显示评估版,显示已注册
- VB-Word添加页眉页脚
- 无法斑驳的青春,折射出心里每一丝憧憬和每一缕不甘
- 聚划算今日团购_聚划算今日团购清…
- 大一大学计算机期末试卷,大一大学计算机基础教程期末考试题
- 07-ET框架的数据库连接
- 石墨加工机器keyword
- Inventor 二次开发 - Gear Up Inventor 分享 Inventor 二次开发 的资料和经验
- Problem of Windows Phone8.1 Jumpstart Demo