栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2335 Temple of Dune

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2335 Temple of Dune

#include <stdio.h>#include <math.h>#include <algorithm>using namespace std;const double  pi=acos(-1.0);typedef struct Vector{    double dx;    double dy;    double ang;}Vector;Vector a[5];int cmp(Vector a,Vector b){    return a.ang<b.ang;}int main(){    int n;    double x1,y1,x2,y2,x3,y3;    scanf("%d",&n);    while(n--)    {        scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);        double cx=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(2*(x3-x1)*(y2-y1)-2*((x2-x1)*(y3-y1)));        double cy=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(2*(y3-y1)*(x2-x1)-2*((y2-y1)*(x3-x1)));        a[0].dx=x1-cx;        a[0].dy=y1-cy;        a[1].dx=x2-cx;        a[1].dy=y2-cy;        a[2].dx=x3-cx;        a[2].dy=y3-cy;        for(int i=0;i<3;i++)        { a[i].ang=atan2(a[i].dy,a[i].dx);        }        sort(a,a+3,cmp);        double a1,a2,a3;        a1=a[1].ang-a[0].ang;        a2=a[2].ang-a[1].ang;        a3=a[0].ang+2*pi-a[2].ang;        int ans=-1;        for(int i=3;i<=200;i++)        { double k=2.0*pi/(double)i; double b1=a1/k; double b2=a2/k; double b3=a3/k; int s1=fmod(b1,1.0)>=0.5?ceil(b1):floor(b1); int s2=fmod(b2,1.0)>=0.5?ceil(b2):floor(b2); int s3=fmod(b3,1.0)>=0.5?ceil(b3):floor(b3); if(fabs(s1-b1)<1e-5&&fabs(s2-b2)<1e-5&&fabs(s3-b3)<1e-5) {     ans=i;break; }        }        printf("%dn",ans);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号