E. 木头人足球赛

时间限制 1000 ms 内存限制 65536 KB

题目描述

木头人星的行动速度是地球上乌龟的 1/10 (所以可以忽略移动的速度),可是他们也热爱运动,尤其是足球。 他们的足球规则跟人类的一样,足球场尺寸为标准 105 * 68,两队各 11 名球员参赛。 假设 Mays 队的每个队员都是专业的球员,踢球都特别准。而她们的对手 Luke 队截球的规律是,如果行进的球离自己的距离不超过 d ,就可以截球成功。 现在 Mays 队的十号球员拿到了球,如果只允许一次射门,Mays 队能不能进球呢? 足球场在 xy 平面内,(0,0)至(105,68)矩形范围内,边缘与 x,y 轴平行且不能站人。其中Luke队的球门为(0, 30)-(0, 38),Mays 队的球门为(105,30)-(105, 38)

输入格式

第一行为组数 T  ,对这 T 组数据,每组第一行是Mays队十号球员的坐标 x0,y0 ,接下来 11 行为 Luke 队的 1 - 11 号队员的属性  xi,yi,di , 其中 xi,yi 表示 i 号球员的坐标, di 表示 i 号球员截球能力值。 保证所有坐标不重复且都在球场范围内, x,y 为整数, d 为正实数  1.0≤d≤3.0 。

输出格式

每组数据一行,如果 Mays 队10号队员直接可以射门得分,则输出“Shoot!‍‍”;如果10号队员不能成功射门,输出"Poor Mays!‍‍".

输入样例

1
104 34
1 24 2.928
48 25 2.605
15 41 1.312
39 42 2.454
3 12 2.080
18 39 1.564
10 36 2.530
97 13 1.589
101 57 1.844
84 39 2.561
0 33 1.831‍

输出样例

Shoot!‍
计算几何,判断射门,就是先求出人到球门上下的角度,然后求出所有防守球员的防守角度,取区间交。
 
 
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#define pi acos(-1.0)
#define eps 1e-8
using namespace std;
int tot,sig,num,t,c,ans[11],rec[11];
double d,high,low,up,down,alpha,beta,ang1,ang2;
struct pt1{double x,y;
pt1(){}
pt1(double x,double y):x(x),y(y){}
}a,ps,tst[11];
struct pt2{double x,y,d;}b[11];
struct field{double h,l;
field(){}
field(double h,double l):h(h),l(l){}
}seg[20];
int cmp(field a,field b){return a.l<b.l;}
double dist(pt1 p1,pt1 p2){return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}
void cal_po_cir_angl(pt1 tmp,pt1 ps,double r){
if(tmp.y>=ps.y){
d=dist(tmp,ps);
alpha=asin(r/d),beta=asin((tmp.y-ps.y)/d);
ang1=alpha/pi*180;ang2=beta/pi*180;
up=ang1+ang2;
down=up-2*ang1;
}else{
d=dist(tmp,ps);
alpha=asin(r/d),beta=asin((ps.y-tmp.y)/d);
ang1=alpha/pi*180;ang2=beta/pi*180;
down=-ang1-ang2;
up=down+2*ang1;
}
}
void cal_h_l(pt1 ps){
if(ps.y>38){
low=-atan((ps.y-30)/ps.x)/pi*180;
high=-atan((ps.y-38)/ps.x)/pi*180;
}else if(ps.y<=38&&ps.y>=30){
high=atan((38-ps.y)/ps.x)/pi*180;
low=-atan((ps.y-30)/ps.x)/pi*180;
}else if(ps.y<30){
high=atan((38-ps.y)/ps.x)/pi*180;
low=atan((30-ps.y)/ps.x)/pi*180;
}
}
int main(){
int i,j,k;
for(scanf("%d",&t);t--;){
sig=0;
scanf("%lf%lf",&a.x,&a.y);
for(i=0;i<11;i++)
scanf("%lf%lf%lf",&b[i].x,&b[i].y,&b[i].d);
ps=pt1(a.x,a.y);
cal_h_l(ps);
memset(seg,0,sizeof(seg));
int cnt=0;
for(i=0;i<11;i++){
if(b[i].x>=ps.x)continue;
pt1 tmp=pt1(b[i].x,b[i].y);
cal_po_cir_angl(tmp,ps,b[i].d);
if(up<low||down>high)continue;
seg[cnt++]=field(up,down);
}
sort(seg,seg+cnt,cmp);
if(low<seg[0].l)sig=1;
if(sig==1){printf("Shoot!\n");continue;}
double Maxh=seg[0].h;
for(i=1;i<cnt;i++){
if(seg[i].l>Maxh){sig=1;break;}
else if(seg[i].h>Maxh)Maxh=seg[i].h;
}
if(high>Maxh)sig=1;
if(sig==1){printf("Shoot!\n");continue;}
printf("Poor Mays!\n");
}
return 0;
}

2014新生暑假个人排位赛02 E. 木头人足球赛相关推荐

  1. 【总结】2014新生暑假个人排位赛02

    A. 丁神去谷歌 2014新生暑假个人排位赛02 时间限制 1000 ms 内存限制 65536 KB 题目描写叙述 丁神要去Google上班了,去之前丁神想再做一道水题,但时间不多了,所以他希望题目 ...

  2. 2014新生暑假个人排位赛01 B. 学姐去学车

    B. 学姐去学车 时间限制 1000 ms内存限制 65536 KB 题目描述 趁着放假,学姐去学车好带学弟去兜风.但是学车真的很辛苦,每天五点半就要起床赶班车,但是学姐的教练更辛苦,他们要相同的时间 ...

  3. 【weJudge】1106. [ACM][2014新生赛重现][现场]Gundam Unicorn

    你上有一门威力巨大的光束炮,然而它现在剩下的能量只能再发射一次.为了使敌人受到更大的损失,你必须谨慎地使用这仅剩的一次机会. 敌军队形和光束炮的覆盖范围均为矩形(矩形不可旋转). 输入要求 输入数据有 ...

  4. 【weJudge】1107. [ACM][2014新生赛重现][现场]啊~啊~,麻婆豆~腐,麻婆豆~腐~

    麻婆豆腐是小奏最爱的食物,为了做出最上等的麻婆豆腐,小奏准备了若干上等的食材,并且获得了传说中的麻婆豆腐的料理方法:每次将两种食材合二为一,成为一种新的食材,直到所有的食材都合并到一起,传说中的麻婆豆 ...

  5. 2014年暑假学习笔记

    2014-7-3 System.getProperty("user.dir") 用户的当前工作目录 QPS每秒查询率(Query Per Second) 每秒查询率QPS是对一个特 ...

  6. 2014年暑假——英语清凉了夏季的炎热

    --题记 又是度过了这个城市中一年最热的季节,又是枯燥中夹杂着美丽的学英语的声音.暑假就这么仓促的过去了,是啊,当所有人在感慨时间飞快的时候,有这样一种人是在每天坚持着做一件事的,这样的人都是好样的. ...

  7. Asce‘s Summer Ranking No.11

    赶交题解时间,这场a和d只说思路,代码没A呢都 A. 小妹妹个数 2014新生暑假个人排位赛11 时间限制 3000 ms 内存限制 65536 KB 题目描述 喜欢焦叔叔的小妹妹实在是太多了,以至于 ...

  8. 暑期个人赛--第十一场--C

    C. 小妹妹采蘑菇 2014新生暑假个人排位赛11 时间限制 1000 ms 内存限制 65536 KB 题目描述 在广茂的大森林里居住着一位可爱的小妹妹,以及一位怪叔叔.这天,怪叔叔让小妹妹为他做一 ...

  9. Asce's Summer Ranking No.7

    作为Mays学姐的脑残粉,还是用一发ym来镇这篇文章~ 大Mays平时无处不在卖萌(见前几期的题),可一旦秀起智商来,出的数论题我们都跟不上她思路0.0 A. 暑假作业题 2014新生暑假个人排位赛0 ...

最新文章

  1. java help
  2. SQL Server 高级操作 视图和存储过程
  3. lamp 安装pdo_mysql_LAMP安装
  4. golang插入字符串_golang 几种字符串的连接方式
  5. 数据库压力变大,读写分离吧
  6. 【Anaconda】InvalidVersionSpecError: Invalid version spec: =2.7
  7. 【牛客 - 551F】CSL 的神奇序列(推公式,猜结论,母函数)
  8. 数据结构实验之图论七:驴友计划
  9. 第一个Verilog程序
  10. vs调试 右键 没有监视变量_IAR EWARM的SWO Trace调试功能
  11. 杭电4510为什么时光不能倒流
  12. Python黑帽子:取代netcat
  13. Anylogic常见问题解决
  14. c语言实现作业调度先来先服务和短进程优先,先来先服务和高响应比优先调度算法C语言实现...
  15. SQL Server 2008 R2安装
  16. c语言for循环计算100以内奇数的和
  17. android 时钟动态图标,安卓 8.1 Launcher3实现动态指针时钟功能
  18. 程序验证(六):纳尔逊-欧朋算法(Nelson-Oppen Procedure)
  19. 游戏英文词汇命名——备用
  20. IGRP中的RTP、Neighbor Discovery协议及Time总结

热门文章

  1. ToF传感器究竟有多神奇?本文告诉你!
  2. dibea地贝扫地机器人怎么样_地贝扫地机器人怎样 地贝扫地机器人产品介绍【详解】...
  3. 如何提升设计的层次感
  4. M.2接口SSD固态硬盘的SATA NGFF协议和PCIe NVMe协议介绍
  5. IPFS未来替代不了HPPT? FIL币不是黄金也将会是数字白银?
  6. c#连接kafka_confluent-kafka-dotnet-master
  7. 深度优先搜索(DFS)与广度优先搜索(BFS)
  8. c语言 实验编程题 计算整数和,C语言程序设计实验与习题答案.doc
  9. GDOI 2016 Day1 T1 中学生数学题
  10. NAT和NAPT 技术