HRBEU/HEUOJ----1018 Temple of Dune
来源:互联网 发布:linux系统tar命令 编辑:程序博客网 时间:2024/06/05 05:36
给了一个正多边形的三个顶点,求满足条件的最小边数的正多边形。一开始没考虑周全,自己意淫了一个算法,果断是错的,样例都跑不出来,后来看了一下大牛的解题报告,说让用浮点数gcd做,一试,还真好使。A了之后发现好像还可以把浮点数都扩大一百万倍按整数gcd做。
#include <iostream>#include <cstdio>#include <cmath>using namespace std;const double PI = 2.*asin(1.);const double eps = 1e-3;struct Point{double x,y;}p[3];double dis(Point a,Point b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}double deg(double a,double b,double c){return acos((a*a+b*b-c*c)/2./a/b);}double fgcd(double a,double b){return b>eps?fgcd(b,fmod(a,b)):a;}int main(){//freopen("in.in","r",stdin);int T;double ans,l[3],d[3];scanf("%d",&T);while(T--){for(int i=0;i<3;i++)scanf("%lf%lf",&p[i].x,&p[i].y);for(int i=0;i<3;i++)l[i]=dis(p[(i+1)%3],p[(i+2)%3]);ans=2.*PI;for(int i=0;i<3;i++){d[i]=2.*deg(l[(i)%3],l[(i+1)%3],l[(i+2)%3]);ans=fgcd(ans,d[i]);}printf("%d\n",(int)(2.*PI/ans));}return 0;}
- HRBEU/HEUOJ----1018 Temple of Dune
- UVa 10439 - Temple of Dune
- TOJ : 1414. Temple of Dune
- ZQUOJ1392 Temple of Dune 解题报告
- uva 10439 - Temple of Dune(几何+枚举)
- UVa 10439 - Temple of Dune(非枚举做法)
- HRBEU/HEUOJ----1015 Arctic Network
- HRBEU/HEUOJ----1059 France '98
- HRBEU/HEUOJ----1019 Ferry Loading II
- HRBEU/HEUOJ----1002 A Star not a Tree?
- [Turkey] Temple of Artemis
- Temple of bone-BFS
- Codechef A temple of Snakes(思维)
- CodeChef:A temple of Snakes(思维 & 二分)
- HRBEU Max Use Of CPU(01背包)
- Guarding the Temple of Genomic Stability - Repair of DNA Interstrand Crosslinks and Fanconi Anemia.
- Dragon temple
- A、Temple
- 基于Swing应用程序设计
- 支持向量机通俗导论(理解SVM的三层境界)
- 手工方法使用dcom对象时,编译出错,无法解析的外部符号 _CLSID_...
- 肥兔读书笔记之Effective C#(第2版) 第一章
- MongoDB 中最多可以使用多少个集合
- HRBEU/HEUOJ----1018 Temple of Dune
- Cocos2d中CCSprite与UIImage互相转换
- 创建图片的缩略图
- 装饰模式
- 键盘的矩阵式结构
- 术语“流”的解释
- OLEDB操作EXCEL
- Linux 内核网络优化
- 黑马程序员-集合