我也不知道是什么题...


题意:
给出平面上n个点(n<=300),(都在第一象限且没有重复的,保证坐标都是整数),合法的点集满足如下要求:
1、6个点,并且有4个点在x轴上
2、这六个点可以组成两个三角形并且两个底角都是锐角
3、一个三角形被另一个完全包含
画张图:(有点丑…QAQ
这里写图片描述


分析:
我的第一想法是枚举坐标轴上的4个点…然后想想就暴复杂度了…QAQ
后来YOUSIKI童鞋讲解了大爷讲的正确做法:
显然我们应该枚举不在坐标轴上的2个点…
这里写图片描述
我们枚举PQ两个点,然后设PQ的连线交x轴于M,过Q点做QN垂直于x轴,过P点做PS垂直于x轴…
然后我们发现左边的两条边和右边的两条边是互不影响的…所以我们可以求出来左边的方案和右边的方案乘起来就好了…
先看右边的吧…
显然如果要求底角是锐角并且大三角形包含小三角形P的那条边就要在PM右边…Q的那条边只需要在QN右边就行了…
那么我们分类讨论一下…
如果PQ的边都在M右边…

for(int i=1;i<=n;i++)//n是M右边的点的个数
    ans+=n-i;

如果Q的边在M左边…

ans+=m*n;//m是NM之间的点的个数

左边同理…


by >_< NeighThorn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值