题目描述

对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。

例如,6 边形:

输入格式

输入只有一行一个整数n,代表边数。

输出格式

输出一行一个整数代表答案。

输入输出样例

输入3 输出0

输入6 输出15

说明/提示

数据规模与约定

  • 对于 50% 的数据,保证 3≤n≤100。
  • 对于100% 的数据,保证 3≤n≤1e5。

思路:

  • 首先,先来看一下对角线的求法:公式:n*(n-3)/2

原因:我们都知道对角线是由两个不相邻的顶点连线形成的,故有n*(n-3)中可能,但是会有重复,所以要除以2

  • 其次,我们再来看这个对角线交点问题

首先,两条对角线形成一个交点,要有两条对角线就必须有一个四边形,即就是在n个顶点中找4个顶点的组合,我们高中都学过排列组合,即4!

所以就可套公式n*(n-1)*(n-2)*(n-3)/4!

(这个公式的由来:第一次可以从n个顶点中取,但第二次只能从n-1个顶点中取,以此类推...由于四个点的顺序不会改变这个四边形,所以要除以4!)

但是,这样在洛谷上会报错,因为n<=1e5,故这个式子n*(n-1)*(n-2)*(n-3)/4!直接爆long long,可以用这个巧妙转换:n*(n-1)*(n-2)*(n-3)/4!==n*(n-1)/2*(n-2)/3*(n-3)/4;

代码:

#include<stdio.h>
int main(void)
{unsigned long long n,sum;scanf("%lld",&n);sum=n*(n-1)/2*(n-2)/3*(n-3)/4;printf("%lld\n",sum);return 0;
}

洛谷P2181对角线题解(C语言)相关推荐

  1. 洛谷P2181 对角线(c语言)

    第三篇题解 题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 nn,代表边数. 输出格式 输 ...

  2. 洛谷 P2181 对角线(C语言)

    题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 n,代表边数. 输出格式 输出一行一个整数 ...

  3. 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)

    题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...

  4. 洛谷P2181 对角线

    一般我们见到这种多边形可以认定为n边形,我们可以知道n边形的对角线是n(n-3)/2,因此我们可以推断中间交点的数量,如:四边形对角线交点为 1个:五边形对角线交点为5个:六边形对角线为15个等等所以 ...

  5. 洛谷 P2181 对角线

    P2181 对角线 传送门 题目描述 对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,6 边形: 输入格式 输入只有一行一个整数 n,代表边数. ...

  6. 洛谷P2181——对角线

    P2181 对角线 原题传送 题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. ...

  7. 合理抽象灵活运用排列组合(洛谷P2181题题解,Java语言描述)

    题目要求 P2181题目链接 分析 其实,本题是一个数学题... 首先由题意得,不会有三条对角线交于一点,所以过某一个交点有且只能有2条对角线. 而这两条对角线实质上是确定了4个顶点(也可以看做是一个 ...

  8. 初刷【洛谷P2181对角线】题解心得

    题目描述: 对于一个 nn 个顶点的凸多边形,它的任何三条对角线都不会交于一点.请求出图形中对角线交点的个数. 例如,66 边形: 输入格式: 输入只有一行一个整数n,代表边数. 输出格式: 输出一行 ...

  9. 洛谷 - P2181 - 对角线 - 打表 - 组合数学

    https://www.luogu.org/problemnew/show/P2181 对于某条对角线,除去从两端出发的对角线,其他的都与它有1个交点. 每个点有(n-3)条对角线,每条对角线和其余C ...

最新文章

  1. python监听文件更改记录_如何用机器人监听老板微信?
  2. GPS 气压计高度测量
  3. Kubernetes应用程序开发认证(CKAD) 经验分享
  4. python的[:-1]和[::-1]用法及结果实例(取反、删除末尾字符串)
  5. 判断两个数组中是否存在相同的数字
  6. zblog php 安装,如何安装Zblog?ZBlogPHP安装图文教程
  7. Linux设置tab4个字符,在 Vim 中设置 Tab 为4个空格
  8. python处理word文档
  9. 再写轮播图——两张图切换,一张充当背景并且模糊,一张做展示图
  10. 常用上市公司控制变量数据集
  11. Halcon学习-算子学习-映射/傅里叶变换/gen_grid_region/rft_generic例程
  12. 重装战姬服务器维护,《重装战姬》10月29日更新维护公告
  13. 什么是REST ful?
  14. 照片换背景色(Photoshop工具)
  15. CDH启动出现cloudera-scm-server一直挂掉
  16. 微型计算机原理与接口技术——8086指令系统之数据传送指令
  17. IDEA 将项目打包war包
  18. VC获取系统空闲时间
  19. 史诗级Java资源大全中文版
  20. 杰理AC1082/1074/1090开发开发记录

热门文章

  1. 职场新人酒场生存法则
  2. 持久内存BTT实现及优化(二)
  3. 网络技术——网络运维工程师必会的网络知识(1)(详细讲解)
  4. Guava Cache 如何防止缓存击穿
  5. Android 微信授权报错:invalid appkey
  6. ABAP SMARTFORMS打印二维码
  7. Aurora插件生成的公式在word中莫名被压扁
  8. 程序员由于天天和逻辑打交道,所以在世故的人眼里往往显得过于简单。
  9. 获取短信验证码(阿里云)进行验证
  10. ITK学习笔记(八) ITK高斯混合模型 GMM EM