zoukankan      html  css  js  c++  java
  • HDU 4195 Regular Convex Polygon

    思路:三角形的圆心角可以整除(2*pi)/n

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<queue>
     5 #include<stack>
     6 #include<algorithm>
     7 using namespace std;
     8 #define clc(a,b) memset(a,b,sizeof(a))
     9 #define inf 0x3f3f3f3f
    10 const int N=10010;
    11 #define LL long long
    12 const double eps = 1e-5;
    13 const double pi = acos(-1);
    14 // inline int r(){
    15 //     int x=0,f=1;char ch=getchar();
    16 //     while(ch>'9'||ch<'0'){if(ch=='-') f=-1;ch=getchar();}
    17 //     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    18 //     return x*f;
    19 // }
    20 struct  Point{
    21     double x,y;
    22     Point(double a=0,double b=0):x(a),y(b){}
    23 };
    24 
    25 double angle(Point a,Point b,Point c){
    26     b.x-=a.x,b.y-=a.y;
    27     c.x-=a.x,c.y-=a.y;
    28     return acos((b.x*c.x+b.y*c.y)/(hypot(b.x,b.y)*hypot(c.x,c.y)));
    29 }
    30 
    31 bool dcmp(double f,int n){
    32     return fabs(f * n - round(f * n)) < eps;
    33 }
    34 
    35 int main(){
    36     while(1){
    37         Point p[3];
    38         for(int i=0;i<3;i++)
    39             if(scanf("%lf%lf",&p[i].x,&p[i].y)!=2) return 0;
    40         double a=angle(p[0],p[1],p[2])/pi;
    41         double b=angle(p[1],p[2],p[0])/pi;
    42         for(int i=3;i<=1000;i++){
    43             if(dcmp(a,i)&&dcmp(b,i)){
    44                 printf("%d
    ",i);
    45                 break;
    46             }
    47         }
    48     }
    49     return 0;
    50 }
    View Code
  • 相关阅读:
    第一篇:GCD的使用
    第一篇:线程的安全
    内存问题
    第一篇:多线程的概念
    第一篇:NSOperation的概念
    存储问题
    第一篇:NSTread线程的创建
    第一篇:多线程使用
    遍历所有表,取每个表的MAXID更新到ID控制表
    <转载>SQL查询数据库各表所占空间
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5402496.html
Copyright © 2011-2022 走看看