832C - Strange Radiation

思路:二分最短时间。

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
#define pi acos(-1.0)
#define pii pair<int,int>
#define pil pair<int,long>
#define mem(a,b) mamset(a,b,sizeof(a)) const int MOD=1e9+;
const int INF=0x3f3f3f3f;
const int N=1e5+;
const double eps=1e-; int n;
double s; struct people
{
double x,v,t;
}a[N]; bool check(double t)
{
bool flag1=false,flag2=false;
double l_l=1e6,l_r=,r_l=1e6,r_r=;
for(int i=;i<n;i++)
{
if(a[i].t==)
{
if(a[i].x-(a[i].v+s)*t>)continue;//如果炸弹放在这个点上都到不了,说明这个人肯定到不了。
flag1=true;
if(a[i].x-a[i].v*t<=)//如果不加速也能到,那说明炸弹放在哪里都可以。
{
l_l=;
l_r=1e6;
continue;
}
double X=floor((t*(s*s-a[i].v*a[i].v)+a[i].x*a[i].v)/s);
l_r=max(l_r,X);//取并集
l_l=min(l_l,(double)a[i].x);
}
else if(a[i].t==)
{
if(a[i].x+(a[i].v+s)*t<1e6)continue;
flag2=true;
if(a[i].x+a[i].v*t>=1e6)
{
r_l=;
r_r=1e6;
continue;
}
double X=ceil((1e6*(s-a[i].v)-t*(s*s-a[i].v*a[i].v)+a[i].x*a[i].v)/s);
r_l=min(r_l,X);
r_r=max(r_r,(double)a[i].x);
}
}
if(!flag1||!flag2)return false;
if(l_l>l_r||r_l>r_r)return false;
if(l_r<r_l||r_r<l_l)return false;//取交集
return true;
} int main()
{
scanf("%d%lf",&n,&s);
for(int i=;i<n;i++)
scanf("%lf%lf%lf",&a[i].x,&a[i].v,&a[i].t); double l=,r=1e6+;
double mid=(l+r)/;
while(r-l>=eps)
{
if(check(mid))r=mid;
else l=mid;
mid=(l+r)/;
}
printf("%.12lf\n",mid);
return ;
}

Codeforces 832C - Strange Radiation的更多相关文章

  1. Codeforces Round #425 (Div. 2) C - Strange Radiation

    地址:http://codeforces.com/contest/832/problem/C 题目: C. Strange Radiation time limit per test 3 second ...

  2. Codeforces Round #425 (Div. 2) Problem C Strange Radiation (Codeforces 832C) - 二分答案 - 数论

    n people are standing on a coordinate axis in points with positive integer coordinates strictly less ...

  3. codeforces A. Strange Addition 解题报告

    题目链接:http://codeforces.com/problemset/problem/305/A 题目意思:给出一个序列,需要从中选择一些数,这些数需要满足:任意的两个数中每一位至少有一个数满足 ...

  4. Codeforces 1383E - Strange Operation(线段树优化 DP or 单调栈+DP)

    Codeforces 题目传送门 & 洛谷题目传送门 Yet another 自己搞出来的难度 \(\ge 2800\) 的题 介绍一个奇奇怪怪的 \(n\log n\) 的做法.首先特判掉字 ...

  5. codeforces 484C Strange Sorting Codeforces Round #276 (Div. 1) C

    思路:首先 他是对1到k 元素做一次变换,然后对2到k+1个元素做一次变化....依次做完. 如果我们对1到k个元素做完一次变换后,把整个数组循环左移一个.那么第二次还是对1 到 k个元素做和第一次一 ...

  6. codeforces 873C - Strange Game On Matrix

    题目大意:给你一个n*m的只有0和1的矩阵,找到每列第一个1的位置a[i][j],a[i][j]及其a[min(k,n-i+1][j]中1的数量,每列位置值是1的可以变为0: 解题思路:因为数据较小, ...

  7. Codeforces Round #425 (Div. 2)C

    题目连接:http://codeforces.com/contest/832/problem/C C. Strange Radiation time limit per test 3 seconds ...

  8. Codeforces Round #373 (Div. 2) C. Efim and Strange Grade 水题

    C. Efim and Strange Grade 题目连接: http://codeforces.com/contest/719/problem/C Description Efim just re ...

  9. Codeforces Round #373 (Div. 2) C. Efim and Strange Grade —— 贪心 + 字符串处理

    题目链接:http://codeforces.com/problemset/problem/719/C C. Efim and Strange Grade time limit per test 1 ...

随机推荐

  1. 大神的博客地址liferay

    http://www.huqiwen.com/category/technology-share/liferay/

  2. TypeScript 基础入门(一)

    1.TypeScript是什么? TypeScript 是 JavaScript 的一个超集,TypeScript 在 JavaScript 的基础上添加了可选的 静态类型 和基于 类 的面向对象编程 ...

  3. Geometry

    uva1473 这题说的是 在空间中给了n个点 然后用体积最小的圆锥将这些点包含在内可以在表面上, 将这些点 映射到xoz平面上然后,然后枚举每个上凸包的边和每个点的极值进行判断求得最小的体积 我们会 ...

  4. jquery ajax基本用法

    <script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script> <s ...

  5. OLAP引擎——Kylin介绍(很有用)

    转:http://blog.csdn.net/yu616568/article/details/48103415 Kylin是ebay开发的一套OLAP系统,与Mondrian不同的是,它是一个MOL ...

  6. python练习题-简单方法判断三个数能否组成三角形

    python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input thre ...

  7. Linux服务器---mysql忘记root密码

    忘记root密码 如果不小心忘记了root密码,那么mysql就不能再登录了,这时就要重置root密码才行.通过下面的步骤,我们可以重新设置root密码. 1.退出mysql [root@localh ...

  8. 容易遗忘的JS知识点整理

    1.hasOwnProperty相关 为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自 Object.prototype 的 hasOwnProperty方法.hasOwnP ...

  9. 联合体union的详解

    1.概述 联合体union的定义方式与结构体一样,但是二者有根本区别. 在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和.而在“联合”中,各成员共享一段内存空间,一个联合变量的长度 ...

  10. Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在

    Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在 原因分析: 由于tomcat由7升级到8.5导致Base64的引用路径错误,默认引用为8.5中的jar, 解决方案: 修改引用 ...