Poj1228(稳定凸包)

题目链接: http://poj.org/problem?id=1228

 

题意:给定一些点,问这些点能不能够成稳定的凸包,这有点不明不白的,我也是看了别人的报告才搞明白题意的,就是如果凸包上的一条边如果不包 含三个以上的点,它就是可以被向外扩展的.

 

解题:

弄明白了题意,以为会很简单了,直接扫描求凸包就行了,而且是不用退栈的过程,后来在实现过程中才发现,即使给出的所有点都在凸包上,也是不能够一次循环下来就入栈所有的点,因为,所有的点只是按相对原点(这里指左下角的点)的转角进行排序,并且又是距离进的排在前面,而在以后或者最后一条边下来的时候,如果它直通原点,则一定会首先入栈那些距原点近的点,这样所有点的入栈顺序就跟所需求的顺序混乱了~所以在入栈每点的时候,首先进行再次的扫描,然后对相对于原点相同转角的所有点进行二次排序,其实这个排序也可以放在求凸包之前的,而把第一次排序中的距离换成远距离放在前面就行了~

 

呃,因为输入WA了好几次,对于输入n,直接判断它小于6,而没有接收后面的n个点,尴尬~

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值