POJ 1675

题意:给一个蛋糕,然后三个草莓,要求将蛋糕均分为三份(120度的扇形),不切割草莓并且保证每份蛋糕均有一个草莓,是否可行。

题解:三种情况不可行:1、草莓在蛋糕圆心(被这坑了)。

           2、存在两草莓与圆心三点共线。

           3、三个草莓张角小于120度。

View Code
 1 #include<cstdio>

 2 #include<cstring>

 3 #include<cmath>

 4 #include<algorithm>

 5 using namespace std;

 6 const double PI=acos(-1.0),eps=1e-8;

 7 inline bool same(double a,double b)

 8 {

 9     double t=a-b;

10     return fabs(t)<eps||fabs(t-2*PI)<eps;

11 }

12 int main()

13 {

14     int T;

15     for(scanf("%d",&T);T;T--)

16     {

17         double th[3],po[3][2];

18         scanf("%lf",&th[0]);

19         bool flag=false;

20         for(int i=0;i<3;i++)

21         {

22             scanf("%lf%lf",&po[i][0],&po[i][1]);

23             th[i]=atan2(po[i][0],po[i][1]);

24             if(same(po[i][0],po[i][1])&&same(po[i][0],0.0))

25                 flag=true;

26         }

27         if(flag||same(th[0],th[1])||same(th[0],th[2])||same(th[1],th[2]))

28             printf("No\n");

29         else

30         {

31             sort(th,th+3);

32             if(th[2]-th[0]<2.0*PI/3.0+eps||th[1]-th[0]>4.0*PI/3.0-eps)

33                 printf("No\n");

34             else

35                 printf("Yes\n");

36         }

37     }

38     return 0;

39 }

你可能感兴趣的:(poj)