cf--1C

 //Accepted    0 KB    60 ms
 //给出正多变形上的三个点,求正多形的最小面积
 //记三个点之间的距离a,b,c;
 //由余弦定理得cosA
 //从而可求出sinA,和正多边形所在外接圆的半径r
 //设三条边所对的圆心角为:theta1,theta2,theta3
 //则正多边形所对的圆心角为gcd(theta1,gcd(theta2,theta3))
 //其中gcd(theta1,theta2)为求两个浮点数的最大公约数
 //至此我们可以根据正多边形所在外接圆的半径r和圆心角求出正多边形的面积
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 #include <queue>
 #include <cmath>
 #include <algorithm>
 using namespace std;
 const double Pi=acos(-1.0);
 /**
   * This is a documentation comment block
   * @authr songt
   */
   struct Point
   {
       double x,y;
   }p[];
 double getDis(Point p1,Point p2)
 {
     return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
 }
 double gcd(double a,double b)
 {
     ) return a;
     ) return b;
     return gcd(b,fmod(a,b));
 }
 void slove()
 {
     ],p[]);
     ],p[]);
     ],p[]);
     *b*c);
     -cosA*cosA);
     *sinA);
     //printf("r=%lf\n",r);
     *asin(a/(*r));
     *asin(b//r);
     //double thetaC=2*asin(c/2/r);
     *Pi-thetaA-thetaB;
     //printf("%lf\n",thetaA+thetaB+thetaC);
     double theta=gcd(thetaA,gcd(thetaB,thetaC));
     //printf("theta=%lf\n",theta);
     //printf("Pi=%lf\n",Pi);
     *Pi/theta*r*r/*sin(theta);
     printf("%.6lf\n",s);
 }
 int main()
 {
     ].x,&p[].y,&p[].x,&p[].y,&p[].x,&p[].y)!=EOF)
     slove();
     ;
 }
上一篇:Redis笔记 -- make编译安装报错记录2则(一)


下一篇:authbind start tomcat services as user with less that 1024 ports. linux常规用户使用tomcat的80端口