CJOJ P1893 【Nescafé29模拟赛】穿越七色虹
来源:互联网 发布:哪个新顶级域名好 编辑:程序博客网 时间:2024/05/17 06:33
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>using namespace std; double h,x0;struct CH {double x,r;}ch[8];struct NCH {double x,y;}nch[8];bool cmp(CH a,CH b) {return a.x<b.x;}double qj(double bj) {return sqrt(bj*bj-h*h);}bool check(double x) {for(int i=1; i<=7; ++i) {//if(x+ch[i].r<h) return 0; 这一句不能加,因为某个在x0之后的彩虹的高度小于h也是合法的 if(x+ch[i].r<h && ch[i].x<=x0) return 0; nch[i].x=ch[i].x-qj(ch[i].r+x); nch[i].y=ch[i].x+qj(ch[i].r+x);}double maxx=nch[1].y,minx=nch[1].x;for(int i=2; i<=7; ++i) {if(nch[i].x<=maxx) {if(maxx<nch[i].y) maxx=nch[i].y;if(minx>nch[i].x) minx=nch[i].x;}}if(maxx>=x0 && minx<=0) return 1;else return 0;}double bs() {double l=0,r=x0,mid;while(r-l>0.001) {mid=(l+r)/2.0;if(check(mid)) r=mid;else l=mid;}return mid;}int main() {cin>>h>>x0;//h:高度,x0:末位置 for(int i=1; i<=7; ++i)cin>>ch[i].x>>ch[i].r;//ch[].x:彩虹的圆心位置。ch[].r:彩虹的半径 sort(ch+1,ch+8,cmp);//ch按圆心位置排序 double ans=bs();//二分答案 printf("%.2lf", ans);return 0;}
1 0
- CJOJ P1893 【Nescafé29模拟赛】穿越七色虹
- 【Nescafé29模拟赛】穿越七色虹
- 【NOIP2013模拟】穿越七色虹
- [NOIP 模拟]穿越七色虹 二分答案
- {题解}[jzoj3391]【NOIP2013模拟】穿越七色虹
- 穿越七色虹
- 【Nescafé 17】杯模拟赛
- BSOJ 3808:穿越七色虹 二分,线段覆盖
- 2012 noip征战 第二场模拟比赛--tyvj Nescafé 17 & Poetize 1 杯模拟赛
- CH Round #53 -【Nescafé 32】杯NOIP模拟赛 GCD Path 题解
- CH Round #53 -【Nescafé 32】杯NOIP模拟赛 数据备份 题解
- Nescafé Cappuccino
- 【CJOJ P1957】【NOIP2010冲刺十模拟赛】数字积木
- CJOJ 1943 【重庆八中模拟赛】寻找代表元
- 【二分】[Nescafé II] 防线
- BSOJ3809 tyvj2054 [Nescafé29]四叶草魔杖 神级骗分 数据之水
- Nescafé 41-异化多肽polypeptide
- TYVJ P2018 「Nescafé26」小猫爬山
- 九度 oj 题目1100:最短路径
- centos7 最简单的git服务器与客户端使用例子
- PHP数组(二)
- Java编程思想重点笔记
- for,foreach,iterator的用法和区别
- CJOJ P1893 【Nescafé29模拟赛】穿越七色虹
- Java多线程基础——Lock类
- 网游加速器开发
- HTTP协议
- ThinkPHP之数据模型操作
- linux常见命令
- 如何退出Activity?如何安全退出已调用多个Activity的Application?
- Problem A. Lazy Spelling Bee Google APAC 2017 University Test Practice Round
- 通讯录 数据库文件读入链表 链表数据存入数据库