题目链接
HDU 5563
BestCoder #62B
方法:正五角星的判断
题目分析
题目大意
t组数据,每组数据五行,分别代表每个点的x,y,问,这五个点能否构成正五角星。
解析
先看看作者的解析:
容易看出只需要判断这5个点是否在一个正五边形上。
因此我们枚举排列,然后依次判断即可。
判定方法是,五条相邻边相等,五条对角线相等。
当然题目给的精度问题,窝只能说,如果泥做法不复杂,精度足够好的话,是可以过的。毕竟题目说的小于
10-4
是指理论上的,所以理论上适用所有的数之间的比较。所以有人问我开方前和开方后,我只能说,哪个精度高用哪个….
当然你也可以先求出凸包然后再判相邻距离……
拿到题,一直以为是判定凸包,到最后可以hack的时候才发现是判定正五角星,一下难度降低了不止一个档次,赛后看完题解,五分钟敲出来了。
如果不看题解的话,自己还是会选择用黄金分割比来计算,看过题目作者的思路之后,还是觉得用五条相邻边相等,五个对角线(即构成五角星的五条线)相等的方法更简单一些。
代码
1 |
|