描述

9月10日教师节,也是YuYu的生日,妈妈给YuYu准备了一个很大的圆形蛋糕,YuYu看中了蛋糕中间那诱人的樱桃(都挤到一块啦),小家伙很高兴,心里开始盘算着如何将樱桃全部分给自己。YuYu是个“孝顺”的孩子,汗~~,每次自己不喜欢吃的都是很客气的多分点给爸妈吃,而且一定要事先尝一下(生怕爸妈吃到嘴里烫着O(∩_∩)O哈哈~),因此她开始很积极的分蛋糕了。为了简化问题,我们假设所有的樱桃合起来半径为0,即不考虑其大小。现在家里有4个人,除了一家3口,还有朋友的孩子Ayao。YuYu先在蛋糕边上找了3个点p1、p2,p3,分别沿p1p2、p2p3、p3p1切了3刀,边上的分给了其他人,最后剩下的就归自己啦(哈哈,这里全是樱桃)。不过小家伙明白自己不能拿最大的一份,否则会被妈妈打屁屁的。假如已知樱桃的位置,现在的问题是要你判断YuYu是不是分到了樱桃,而且自己分到的蛋糕是不是最大的。
如果YuYu切的时候樱桃刚好落在刀上,小家伙会想方设法把樱桃占为己有,因此也算分到了樱桃。

输入

输入数据有多组,每组数据占一行,分别包含p1、p2、p3的坐标x1、y1、x2、y2、x3、y3,以及樱桃的位置p的坐标x、y。其中p1、p2、p3不共线且任何两个点不重合。所有数据均为整数。
输入以EOF结束。

输出

如果YuYu分到了樱桃,而且自己分到的蛋糕大小不是最大(与某个人一样大也算不是最大),那么输出:Happy Birthday!
如果YuYu分到了樱桃,但自己分到的蛋糕大小是最大的,那么输出:Greedy!
如果YuYu没有分到蛋糕上的樱桃则输出:Cry!
如果樱桃根本不可能在蛋糕上(在边上也算在蛋糕上),呵呵,那有可能小家伙在做白日梦!则输出:Happy Dream!

样例输入

0 0 1 1 -1 1 0 2
0 0 1 1 -1 1 0 1
0 0 1 1 -1 1 0 3
0 0 3 4 -3 4 0 1

样例输出

Cry!
Happy Birthday!
Happy Dream!
Greedy!

题意

有4个点,p1,p2,p3形成一个三角形为yuyu分得的,外接圆为蛋糕

给你4个点,p1,p2,p3,p4,然后p1,p2,p3形成1个三角形,求出它的外接圆

1.如果p4在外接圆外输出Happy Dream!

2.如果p4不在三角形内输出Cry!

3.如果三角形面积是剩下3块面积中最大的输出Greedy!

否则输出Happy Birthday!

题解

对于1,已知三点求圆心和半径,三个点带入(x-cirx)2+(y-ciry)2=R2然后算一年后可得cirx和ciry和R

对于2,p4如果在三角形外,p4和p1,p2,p3任意两个点面积总和大于三角形面积

对于3,剩下三块面积,每块面积就是求出扇形面积减去三角形面积

PS:被这个破题卡精度了,话说这个配图很吊

代码

 #include<bits/stdc++.h>
using namespace std; struct point
{
double x,y;
point(double x=,double y=):x(x),y(y){}
}p[];
double area(point a,point b,point c)
{
return fabs((b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y))*0.5;
}
double dis2(point a,point b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
point circle(point a,point b,point c)
{
double x=((a.y-b.y)*((a.x*a.x-c.x*c.x+a.y*a.y-c.y*c.y)*0.5)-(a.y-c.y)*((a.x*a.x-b.x*b.x+a.y*a.y-b.y*b.y)*0.5))/((a.y-b.y)*(a.x-c.x)-(a.x-b.x)*(a.y-c.y));
double y=((a.x-c.x)*((a.x*a.x-b.x*b.x+a.y*a.y-b.y*b.y)*0.5)-(a.x-b.x)*((a.x*a.x-c.x*c.x+a.y*a.y-c.y*c.y)*0.5))/((a.y-b.y)*(a.x-c.x)-(a.x-b.x)*(a.y-c.y));
return point(x,y);
}
double area_s(point a,point b,point cir)
{
return acos((*dis2(a,cir)-dis2(a,b))/(*dis2(a,cir)))*dis2(a,cir)*0.5-area(a,b,cir);
}
int main()
{
while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&p[].x,&p[].y,&p[].x,&p[].y,&p[].x,&p[].y,&p[].x,&p[].y)!=EOF)
{
point cir=circle(p[],p[],p[]);
if(dis2(p[],cir)>dis2(p[],cir)){printf("Happy Dream!\n");continue;}
if(area(p[],p[],p[])+area(p[],p[],p[])+area(p[],p[],p[])>area(p[],p[],p[])){printf("Cry!\n");continue;}
double s4=area(p[],p[],p[]);
if(s4>area_s(p[],p[],cir)&&s4>area_s(p[],p[],cir)&&s4>(area_s(p[],p[],cir)))printf("Greedy!\n");
else printf("Happy Birthday!\n");
}
return ;
}

TZOJ 3244 Happy YuYu's Birthday(数学几何)的更多相关文章

  1. hdu 1577 WisKey的眼神 (数学几何)

    WisKey的眼神 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. hdu 1115 Lifting the Stone (数学几何)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. ACM: FZU 2110 Star - 数学几何 - 水题

     FZU 2110  Star Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u  Pr ...

  4. gcc【数学几何】

    GCC Time Limit: 1000MS Memory limit: 65536K 题目描述 The GNU Compiler Collection (usually shortened to G ...

  5. poj 1701【数学几何】

    The area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  6. LightOj1385 - Kingdom Division(数学几何题)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1385 题意:下图中已知面积 a b c 求 d; 如果d的面积不确定,输出-1. 连接 ...

  7. EOJ Monthly 2018.7 B.锐角三角形(数学几何+思维)

    描述 是否存在面积为S/2的整点锐角三角形?存在输出Yes并输出三个整点坐标,否则输出No. 注意如果存在输出的坐标必须在long long范围内. Input 第一行一个整数S(1<=S< ...

  8. hdu 6097 Mindis(数学几何,圆心的反演点)

    Mindis Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  9. Tell me the area---hdu1798 (数学 几何)

    http://acm.hdu.edu.cn/showproblem.php?pid=1798 给你两个圆求阴影部分的面积 求出两个扇形的面积减去四边形的面积 扇形的面积是度数(弧度制)*半径的平方 不 ...

随机推荐

  1. flex 上下div固定, 中间div自适应

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. php运行代码流程和性能优化方法

    ---恢复内容开始--- php文件->扫描->zd引擎去理解->opcodes->执行->输出 例子,用white随机循环20000数据进行性能测试,分别对比isset ...

  3. Haskell语言学习笔记(77)Data.HashSet

    安装 unordered-containers $ cabal install unordered-containers Installed unordered-containers-0.2.9.0 ...

  4. webpack异步加载业务模块

    虽然把我们用到的JS文件全部打包一个可以节省请求数,但如果打包后的JS文件过大,那么也容易出现白屏现象,许多操作失灵.而且一些区域是点到才出现,那么相关的JS其实可以剥离出这个大JS文件外.这就涉及到 ...

  5. idea中pom文件需要添加的依赖

    <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉. --> <!-- IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块 ...

  6. Structs复习 Result第一部分

    Jar包 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=&q ...

  7. Win2012&Win2008双系统启动菜单设置

    电脑最初安装的是XP,后来想升级操作系统,但XP里又有很多常用软件不想重装,于是装了一个Win2008 R2的双系统,安装好2008R2后,系统自动产生一个2008R2的启动菜单,可以选择进入2008 ...

  8. 2019.2.4 nfs原理和安装实验

    NFS 访问一个本地文件还是NFS共享文件对于客户端而言都是透明的,当文件打开的瞬间,内核会作出一个决定,如果是本地文件内核会将本地NFS共享文件内核会将NFS共享文件的所有引用传递给——>NF ...

  9. idea中maven中jdk版本的选择(转)

    转自:https://www.cnblogs.com/joshul/p/6222398.html IntelliJ IDEA中Maven项目的默认JDK版本   在IntelliJ IDEA 15中使 ...

  10. tkinter绑定鼠标滚轮滚动事件 canvas.bind("<MouseWheel>", processWheel) 失效

    其实,不同系统不一样,我的是Ubuntu 所以是<Button-4>   <Button-5> 见下: 来自:https://stackoverflow.com/questio ...