神呐!!!!!!!
折腾了两天多!!!(其实有效率地去想去写应该一天吧)。。
原来的想法很淳朴(好吧,很笨),就是找出来卡壳的那两条线,然后算出每条线离它相应的那条边的角度,然后旋转。
分为三种情况
1、两条线都和凸包的边平行
2、和第一个凸包的某边平行
3、和第二个凸包的某边平行
然后这三种情况,分别算出来下次应该存在的卡壳,就这么下去。
一直TLE,现在才知道,因为计算角度,损失精度了,所以TLE了T T 。。。换了种判断选择哪条边的算法就A了T T 。。。
另一种是看南理学长的,大体思路都一样,只是细节处理,不用计算旋转的边,因为边必然是凸包上的边,只要每次循环的时候,判断选择的哪条边即可。
时间区别不大,唯一区别就是,一个200行,另一个140行T T 。。
短的:
长的: