Codeforces 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的更多相关文章
- Codeforces Round #425 (Div. 2) C - Strange Radiation
		地址:http://codeforces.com/contest/832/problem/C 题目: C. Strange Radiation time limit per test 3 second ... 
- 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 ... 
- codeforces  A. Strange Addition  解题报告
		题目链接:http://codeforces.com/problemset/problem/305/A 题目意思:给出一个序列,需要从中选择一些数,这些数需要满足:任意的两个数中每一位至少有一个数满足 ... 
- Codeforces 1383E - Strange Operation(线段树优化 DP or 单调栈+DP)
		Codeforces 题目传送门 & 洛谷题目传送门 Yet another 自己搞出来的难度 \(\ge 2800\) 的题 介绍一个奇奇怪怪的 \(n\log n\) 的做法.首先特判掉字 ... 
- codeforces  484C  Strange Sorting     Codeforces Round #276 (Div. 1) C
		思路:首先 他是对1到k 元素做一次变换,然后对2到k+1个元素做一次变化....依次做完. 如果我们对1到k个元素做完一次变换后,把整个数组循环左移一个.那么第二次还是对1 到 k个元素做和第一次一 ... 
- 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: 解题思路:因为数据较小, ... 
- Codeforces Round #425 (Div. 2)C
		题目连接:http://codeforces.com/contest/832/problem/C C. Strange Radiation time limit per test 3 seconds ... 
- 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 ... 
- 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 ... 
随机推荐
- Jason使用
			Jason是一种数据传输时候的一种格式,类似XML. package liferay; import java.beans.IntrospectionException; import java.be ... 
- git克隆代码
			1.vs--team explorer-clone,或者team-connect to tfs-clone 2.1输入git的url,2输入本地放代码的文件夹,3点clone,克隆出4.双击4 3.点 ... 
- R 简明教程
			R 是一门统计语言.它有很多数据分析和挖掘程序包.可以用来统计.分析和制图. 你也可以在 LaTeX 文档中运行 R 命令. # 注释以 # 开始 # R 语言原生不支持 多行注释 # 但是你可以像这 ... 
- linux常用命令:which 命令
			我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置 ... 
- php array_multisort对数据库结果多个字段进行排序
			php array_multisort对数据库结果多个字段进行排序$data 数组中的每个单元表示一个表中的一行.这是典型的数据库记录的数据集合. 例子中的数据如下:volume | edition ... 
- MySQL Crash Course #21# Chapter 29.30. Database Maintenance & Improving Performance
			终于结束这本书了,最后两章的内容在官方文档中都有详细介绍,简单过一遍.. 首先是数据备份,最简单直接的就是用 mysql 的内置工具 mysqldump MySQL 8.0 Reference Man ... 
- MySQL分区(Partition)功能
			引用地址:http://blog.csdn.net/tjcyjd/article/details/11194489 自5.1开始对分区(Partition)有支持 = 水平分区(根据列属性按行分)=举 ... 
- 20145104张家明 《Java程序设计》第三次实验设计
			合作伙伴是20145103 下面是我们的git成果 首先下载他托管上去的代码 然后运行下载的代码 之后对下载的代码进行修改 然后推送上去 下载修改后的代码并运行 •软件工程是把系统的.有序的.可量化的 ... 
- np.tile 和np.newaxis
			output array([[ 0.24747071, -0.43886742], [-0.03916734, -0.70580089], [ 0.00462337, -0.5143158 ... 
- Java查找算法之二分查找
			二分查找是一种查询效率非常高的查找算法.又称折半查找. 一.算法思想 有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩小一半的查找范围,直到匹配成功. 一个情景:将表中间位置 ... 
