2018.11.7 Nescafe29 T1 穿越七色虹

题目

题目背景

在 Nescafe27 和 28 中,讲述了一支探险队前往 Nescafe 之塔探险的故事……

当两位探险队员以最快的时间把礼物放到每个木箱里之后,精灵们变身为一缕缕金带似的光,簇簇光芒使探险队员们睁不开眼睛。待一切平静下来之后,探险队员来到了一座宫殿 中,玉制的石椅上坐着两个人……

“你们就是……Nescafe 之塔护法中的两位?”

“是的,我们就是神刀护法 xlk 和飞箭护法 riatre……你们来这里做什么?”

“我们是前来拜访圣主和四位护法的……”

“如果你们想见圣主和其它两位护法,你们必须穿过前方的七色彩虹。请随我来吧……”

题目描述

探险队员们跟随两位护法来到了七色虹前。七色虹,就是平面直角坐标系中赤橙黄绿青 蓝紫七个半圆,第 i 座(1<=i<=7)半圆形彩虹的圆心是(xi,0),半径是 ri,半圆上所有点的纵坐 标均为非负数。探险队员可以看做一条竖直的、长度等于身高的线段,线段的底端纵坐标为 0,最高的一位探险队员的身高为 h。

现在探险队员们要从(0,0)穿越七色虹到达(x0,0),穿越七色虹的过程中,探险队员的整 个身体必须始终在至少一个半圆形彩虹的内部。由于彩虹的半径 ri 可能太小了,不足以满 足这个条件,因此两位护法决定帮助他们把所有彩虹的半径都增大一个非负实数 r。探险队 员们想知道,r 最小是多少呢?

输入格式

第一行两个实数 h、x0,表示身高和目的地横坐标。

接下来七行每行两个实数 xi、ri,表示七座半圆形彩虹的圆心和半径。

输出格式

输出最小的 r,四舍五入保留 2 位小数。

样例输入

4.0 36.0

0.0 4.0

6.0 4.0

12.0 4.0

18.0 4.0

24.0 4.0

30.0 4.0

36.0 4.0

样例输出

1.00

数据范围及约定

对于 100% 的数据,满足 0<=xi,x0<=10000,0<h<100。

穿越七彩虹

二分,没什么好说的。

代码

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cmath>
 5
 6 using namespace std;
 7
 8 #define EPS 1e-10
 9
10 double h, x0;
11
12 struct Node {
13     double x, r;
14 }c[10];
15
16 struct Segment {
17     double l, r;
18 }seg[10];
19
20 bool cmp(const Segment &a, const Segment &b) {
21     return a.l < b.l;
22 }
23
24 int check(double R)
25 {
26     int segcnt = 0;
27     for(int i = 1; i <= 7; ++i)
28     {
29         double delt = 4 * ((c[i].r + R) * (c[i].r + R) - h * h);
30
31         if(delt < 0)continue;
32         double x1 = (2 * c[i].x - sqrt(delt)) / 2;
33         double x2 = (2 * c[i].x + sqrt(delt)) / 2;
34         seg[++segcnt] = (Segment){x1, x2};
35     }
36     sort(seg + 1, seg + 1 + segcnt, cmp);
37     double r = 0;
38     for(int i = 1; i <= segcnt && r < x0; ++i)
39     {
40         if(seg[i].l > r)
41             break;
42         else
43             r = max(r, seg[i].r);
44     }
45     if(r < x0)
46         return 0;
47     else
48         return 1;
49 }
50
51 int main() {
52     freopen("rainbow.in", "r", stdin);
53     freopen("rainbow.out", "w", stdout);
54
55     scanf("%lf%lf", &h, &x0);
56
57     for(int i = 1; i <= 7; ++i)
58         scanf("%lf%lf", &c[i].x, &c[i].r);
59
60     double l = 0.0, r = 10000.0, mid;
61     while(r - l >= EPS) {
62         mid = (l + r) / 2;
63         if(check(mid))
64             r = mid;
65         else
66             l = mid;
67     }
68
69     printf("%.2lf\n", mid);
70
71     fclose(stdin);
72     fclose(stdout);
73
74     return 0;
75 }

原文地址:https://www.cnblogs.com/fl0w3r/p/9920604.html

时间: 2024-11-02 20:31:53

2018.11.7 Nescafe29 T1 穿越七色虹的相关文章

[ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)

引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别控制红.绿.蓝三种颜色的灯输出亮度,再结合混色原理表现出丰富多彩的炫光效果~ 写在前面:前十几篇介绍了CC2530的一些外设的基本用法,接下来几篇拿几个例子回顾并加深一下之前的知识点,上面引言是普及.下面高能预警! 第一个例子:用定时器1产生PWM来控制LED亮度 我们在<[ZigBee] 5.Zi

【谜客帝国】第142届出来混饭的主擂谜会(2018.11.30)

[谜客帝国]第142届出来混饭的主擂谜会(2018.11.30) 主持:瓷  计分:默沫 1.莫明其妙(礼貌用语)晚上好 2.漂泊母牵挂(字)嗨 3.一双玉臂千人枕(新称谓)女博客 4.半点朱唇万客尝(成语)任人唯亲 5.一场秋雨一场凉(医学名词)渐冻人 6.残月如弓,星星双映(字)弱 7.母亲伴内戚,端午西湖游(市名)上海 8.一心求平安(字)恙 9.二月伴儿游古迹(中药)元胡 10.“骑赤兔,提青偃,过五关,斩六将”(军用名词二 2+4)马刀,战斗减员 11.书法比赛(建筑名词)品字形结构

【谜客帝国】第141届幽谷寒梅主擂谜会(2018.11.15)

 [谜客帝国]第141届幽谷寒梅主擂谜会(2018.11.15) 主持:幽谷寒梅  计分:渣渣 1.捧来一掬春,三人分一分(字)拘 2.“薄技在身,胜握千金”(6字爆料某知名演员境况)陈小艺超有钱 3.但觉纣王仁心无存(6字旅游语,含吉林地名)感受德惠风光 [注:纣王名受(一作受德).惠风:仁心.仁政,汉张衡 <东京赋>:“惠风广被,泽洎幽荒.”] 4.并未让其交代(4字比较语,含古尊称)没令坦白 5.“白发垂项,佝偻携杖”(知名谜人专职,掉尾格)老罗背锅 6.毋为威武动屈心(南北朝人物)莫折

奇术神医第七色

某某市第一人民医院儿科住院部,晚上七点三十二分,第六号儿科病房,围满了一大群医生和护士.病床上躺着一位年龄大约四五岁的小男孩,乌黑的头,双眼紧闭,脸颊绯红. 房门推开,进来一位年龄五十上下的中年人,身穿格子西服,浓眉大目,神色焦急. "李院长!" 所有的人都和中年人打招呼. "小男孩情况怎么样?"赵院长道. "刚测了体温,42度."梁艳道. "什么,42度!注射了退烧针吗?"赵院长道. "三个小时前已经注射了一支复方

我的意中人是个盖世英雌,会穿着七色Bra来找我|七夕

紫霞仙子说:"我的意中人是个盖世英雄,有一天他会踩着七色云彩来娶我." 七色的云彩或许太过玄幻,不过如果是七色的Bra呢? 我相信对于七夕里的男女来说,一个彩色内衣会是一个激发起更多风情的存在. 这种事情还真的有,而且当商超里出现哇咔开设彩虹专柜,卖各种色彩Bra的时候,据说,还引发了一些无聊的人的脑洞,联想到了这是同志内衣.同志专柜啥的-- 话说,同志,请注意下节操,这个扯得上吗! 色彩多一点,才是红男绿女之间最好的润滑剂,至少不像小杜杜那么赤裸裸.情趣,请跟上节奏,别丢了节操! 从

2018/11/12(python)

文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 f=open('实验文件.txt',encoding='gbk') data=f.read() print (data ) f.close() 读写都是字符串形式 读 f=open('实验文件.txt','r',encoding='gbk') print(f.readlines()) f.close() 写,会覆盖原文件 f=open('实验文件.txt','w',encoding='gbk')

2018.11.16 浪在ACM 集训队第五次测试赛

2018.11.16 浪在ACM 集训队第五次测试赛 整理人:李继朋 Problem A : 参考博客:[1]朱远迪 Problem B : 参考博客: Problem C : 参考博客: Problem D : 参考博客:[1]朱远迪 Problem E : 参考博客: 原文地址:https://www.cnblogs.com/QLU-ACM/p/9977949.html

2018.11.25日脉象记录

2018.11.22日改方子 变化: 柴胡从9克减为6克                 //感冒的症状减退? 天花粉15克加到30克 //这四个变化的原因都是附子+党参导致的血热,出汗,血亏,水少 大枣从45克增加到60克 //停止茯苓排水,增加大枣补血,生蒲黄凉血,继续疏通经络 茯苓12克减为0克   //左右手整体脉象变成洪大中空,说明热损耗了津液 生蒲黄9克,凉血   //天花粉增量是消除肺中积聚的热,肾虚第一就要保肺,使得肺能降雨给肾,补肾阴 增加: 炒芥子9克 归肺经,温中散寒,利气

2018.11.28 Android踩坑(读写文件)

在学到使用Android Device Monitor 查看文件的时候,发现Android Device Monitor在Android Studio里面找不到了,网上查了原来是被官方弃用了,现在通过命令行的方式启动 1.打开Project Structure找到sdk安装路径 2.找到这个路径打开里面tools文件夹下面的monitor.bat双击运行即可打开Android Device Monitor 虽然说找到了Android Device Monitor,但是打开报了个Could not