poj 3608 Bridge Across Islands(旋转卡壳求俩凸包间最小间距)

神呐!!!!!!!

 

折腾了两天多!!!(其实有效率地去想去写应该一天吧)。。

 

原来的想法很淳朴(好吧,很笨),就是找出来卡壳的那两条线,然后算出每条线离它相应的那条边的角度,然后旋转。

 

分为三种情况

 

1、两条线都和凸包的边平行

 

2、和第一个凸包的某边平行

 

3、和第二个凸包的某边平行

 

然后这三种情况,分别算出来下次应该存在的卡壳,就这么下去。

 

一直TLE,现在才知道,因为计算角度,损失精度了,所以TLE了T T 。。。换了种判断选择哪条边的算法就A了T T 。。。

 

另一种是看南理学长的,大体思路都一样,只是细节处理,不用计算旋转的边,因为边必然是凸包上的边,只要每次循环的时候,判断选择的哪条边即可。

 

时间区别不大,唯一区别就是,一个200行,另一个140行T T 。。

 

短的:

 

 

 

长的:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值