洛谷P2181

1.洛谷原创:求凸多边形的对角线交点个数

  公式法:n (n-1) / 2 (n-2) / 3 * (n-3) / 4

  一般法:

首先,将该凸多边形的顶点依次标上序号,如六边形六个顶点依次为:1,2,3,4,5,6

然后,选出能构成对角线的两个点的组合,构成一个二位列表,经过推断可知,构成对角线的条件为:

1,两个数字的差不能为1,也就是两个点不能相邻。

2,因为1号点与n号点也相邻,但是之间的差值却不是1,所以应该将这种情况排除。

例:六边形经过第一次的筛选可以得到二维列表

[[1, 3], [1, 4], [1, 5], [2, 4], [2, 5], [2, 6], [3, 5], [3, 6], [4, 6]]([1,3]代表点1和点3的连线)

最后一步,我们应该寻找能构成焦点的两条线的关系,经过推导可知:

对于两条对角线[a,b],[c,d]。(a<b,c<d)

如果a<c<b<d或c<a<d<b

(这里解释一下为什么要这样,因为只有当其中一条对角线的一个端点(只能是一个)在另一条对角线的两个端点之间时,两对角线才能相交)

即可构成一个交点


该思路转自CSDN博主「见白头」的原创文章
原文链接:https://blog.csdn.net/jianbaitou/article/details/110309451

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华幽子丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值