题目

题目背景

在 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。

穿越七彩虹

二分,没什么好说的。

代码

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath> using namespace std; #define EPS 1e-10 double h, x0; struct Node {
double x, r;
}c[]; struct Segment {
double l, r;
}seg[]; bool cmp(const Segment &a, const Segment &b) {
return a.l < b.l;
} int check(double R)
{
int segcnt = ;
for(int i = ; i <= ; ++i)
{
double delt = * ((c[i].r + R) * (c[i].r + R) - h * h); if(delt < )continue;
double x1 = ( * c[i].x - sqrt(delt)) / ;
double x2 = ( * c[i].x + sqrt(delt)) / ;
seg[++segcnt] = (Segment){x1, x2};
}
sort(seg + , seg + + segcnt, cmp);
double r = ;
for(int i = ; i <= segcnt && r < x0; ++i)
{
if(seg[i].l > r)
break;
else
r = max(r, seg[i].r);
}
if(r < x0)
return ;
else
return ;
} int main() {
freopen("rainbow.in", "r", stdin);
freopen("rainbow.out", "w", stdout); scanf("%lf%lf", &h, &x0); for(int i = ; i <= ; ++i)
scanf("%lf%lf", &c[i].x, &c[i].r); double l = 0.0, r = 10000.0, mid;
while(r - l >= EPS) {
mid = (l + r) / ;
if(check(mid))
r = mid;
else
l = mid;
} printf("%.2lf\n", mid); fclose(stdin);
fclose(stdout); return ;
}

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

  1. -cogs1247. [Nescafé29] 穿越七色虹

    1247. [Nescafé29] 穿越七色虹 ★   输入文件:rainbow.in   输出文件:rainbow.out   简单对比时间限制:5 s   内存限制:128 MB [背景] 在Ne ...

  2. 2018.11.3 Nescafe18 T1 七夕祭

    题目 背景 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是 TYVJ 今年举办了一次线下七夕祭.Vani 同学今年成功邀请到了 cl 同学陪他来共度七夕,于是他们决定去 TYVJ七夕祭游玩. ...

  3. 2018.11.5 Nescafe26 T1 小猫爬山

    题目 题目描述 Freda 和 rainbow 饲养了 N 只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们 终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). Fre ...

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

    引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...

  5. OI生涯回忆录 2018.11.12~2019.4.15

    上一篇:OI生涯回忆录 2017.9.10~2018.11.11 一次逆风而行的成功,是什么都无法代替的 ………… 历经艰难 我还在走着 一 NOIP之后,全机房开始了省选知识的自学. 动态DP,LC ...

  6. China Intelligent Office Summit(2018.11.21)

    时间:2018.11.21地点:中关村软件园国际会议中心

  7. International Programming Retreat Day(2018.11.17)

    时间:2018.11.17地点:北京国华投资大厦

  8. Intel Artificial Intelligence Conference(2018.11.14)

    时间:2018.11.14地点:北京国贸大酒店

  9. 2018.11.23 浪在ACM 集训队第六次测试赛

    2018.11.23 浪在ACM 集训队第六次测试赛 整理人:刘文胜 div 2: A: Jam的计数法 参考博客:[1] 万众 B:数列 参考博客: [1] C:摆花 参考博客: [1] D:文化之 ...

随机推荐

  1. POJ1021 2D-Nim

    题目来源:http://poj.org/problem?id=1021 题目大意: 有一种在棋盘上玩的游戏,每一步,一个玩家可以从棋盘上拿走连续行或列的棋子.谁拿到最后一颗棋子就胜利.如下图所示的棋盘 ...

  2. Django 03 模板路径、模板变量、常用的过滤器

    Django 03 模板路径.模板变量.常用的过滤器 一.模板路径 #1.在每个app下面添加一个templates文件 #2.在项目views.py里面第33行INSTALLED_APPS里面添加上 ...

  3. Uva1149

    每个bin最多只能放两个,所以最佳的贪心策略是从大的开始放,如果有空间放第二个,尽量放最大的. #include <bits/stdc++.h> using namespace std; ...

  4. py---------网络编程

    一.软件开发架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访 ...

  5. Java反射详解(Spring配置)

    1. 反射原理 a).运行时通过 Class c = Class.forName("com.hua.xx.DynTest")加载类文件 b).通过 DynTest t = c.ne ...

  6. java多线程基础(二)--java多线程的基本使用

    java多线程的基本使用 在java中使用多线程,是通过继承Thread这个类或者实现Runnable这个接口或者实现Callable接口来完成多线程的. 下面是很简单的例子代码: package c ...

  7. SQL中改变列的数据类型

    一.该列非主键.无default约束 直接更新: alter table 表名 alter column 列名 数据类型 二.该列为主键列.无default约束 (1)删除主键 alter table ...

  8. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十一天(非原创)

    文章大纲 一.课程介绍二.订单系统介绍三.项目源码与资料下载四.参考文章 一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用.(2)第二天:框架的整合 ...

  9. agc015F - Kenus the Ancient Greek(结论题)

    题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...

  10. MobaXterm连接远程Linux服务器

    MobaXterm是一个X服务器和一组的Unix命令(GNU/ Cygwin的)封装在一个单一的便携式exe文件的增强终端. MobaXterm包括一个巨大的multitab原生的Windows终端. ...