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。
解
穿越七彩虹
二分,没什么好说的。
代码
#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 穿越七色虹的更多相关文章
- -cogs1247. [Nescafé29] 穿越七色虹
1247. [Nescafé29] 穿越七色虹 ★ 输入文件:rainbow.in 输出文件:rainbow.out 简单对比时间限制:5 s 内存限制:128 MB [背景] 在Ne ...
- 2018.11.3 Nescafe18 T1 七夕祭
题目 背景 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是 TYVJ 今年举办了一次线下七夕祭.Vani 同学今年成功邀请到了 cl 同学陪他来共度七夕,于是他们决定去 TYVJ七夕祭游玩. ...
- 2018.11.5 Nescafe26 T1 小猫爬山
题目 题目描述 Freda 和 rainbow 饲养了 N 只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们 终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). Fre ...
- [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)
引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...
- OI生涯回忆录 2018.11.12~2019.4.15
上一篇:OI生涯回忆录 2017.9.10~2018.11.11 一次逆风而行的成功,是什么都无法代替的 ………… 历经艰难 我还在走着 一 NOIP之后,全机房开始了省选知识的自学. 动态DP,LC ...
- China Intelligent Office Summit(2018.11.21)
时间:2018.11.21地点:中关村软件园国际会议中心
- International Programming Retreat Day(2018.11.17)
时间:2018.11.17地点:北京国华投资大厦
- Intel Artificial Intelligence Conference(2018.11.14)
时间:2018.11.14地点:北京国贸大酒店
- 2018.11.23 浪在ACM 集训队第六次测试赛
2018.11.23 浪在ACM 集训队第六次测试赛 整理人:刘文胜 div 2: A: Jam的计数法 参考博客:[1] 万众 B:数列 参考博客: [1] C:摆花 参考博客: [1] D:文化之 ...
随机推荐
- Python网络爬虫(四)
关于Robots协议 Robots协议也称为爬虫协议,是网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取.因为我们如果无限 ...
- Java安装及配置开发环境
这篇文章里将记录安装Java及配置Java环境的一些步骤,以及基于Java的可扩展开发平台Eclipse的Android开发环境的配置. 准备工具 1.JDK下载 下载地址 关于左侧列栏的Java S ...
- Java中文编程开发,让Java编写更改复杂
额?what? 在B站无意中看到一张图,无意间已发了自己的好奇,实际上我早就知道Java支持Unicode编码也就是可以使用中文命名规则,但是我们可以包装一下,玩一玩完全使用中文编码也未尝不可,但是经 ...
- vs获取最新时,提示签出解决方案
项目中的文件有被意外去掉了只读属性的. VSS中签入状态的文件在本地都有只读属性. 如果VSS中是签入状态,而对应的本机文件没有只读状态,在获取最新版本的时候,就会弹出一个对话框提示签出还是用VSS中 ...
- linux读取yaml文件的某个属性值
trigger=$(cat test.yaml | grep "trigger" | awk '{print $2}') 该条命令的意思是:读取test.yaml文件中的trigg ...
- Sqoop架构
Sqoop 架构 Sqoop 架构是非常简单的,它主要由三个部分组成:Sqoop client.HDFS/HBase/Hive.Database.下面我们来看一下 Sqoop 的架构图. 用户向 Sq ...
- Spring AOP的增强处理
就是@Before @Around @AfterReturning @AfterThrowing这几个标签的属性可以放到方法参数里面获取 例子 //正常操作@Around("service( ...
- mysql数据库的数据变更事件获取以及相关数据
https://medium.com/@Masutangu/udf-trigger%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7mysql%E6%95%B0%E6%8D%AE ...
- 如何将js导入时的小红叉去掉
右键WebRoot-Myeclipse-Exclude From Validation
- 学习笔记:Web Storage API
Web Storage API 提供了存储机制,通过该机制,浏览器可以安全地存储键值对,比使用 cookie 更加直观. Web Storage 包含如下两种机制: sessionStorage 为每 ...