Codeforces Round #365 (Div. 2) C. Chris and Road(思维题-零点定理)
题目
你从(0,0)出发到(0,w)
有一辆由n个点组成的多边形车
第i个点是(xi,yi),0<=yi<=w
行人速度v,车速度u向左行驶
问不被撞到的情况下,到达w的最短时间
思路来源
https://blog.csdn.net/aozil_yang/article/details/52132400
题解
这思维题绝了 我自己做真想不出来
考虑有一个点(xi,yi)人走到(0,yi)的时候,这个点走到了哪里
如果这个点在y轴右侧,说明还没到y轴,还没有撞上行人
而这个点在y轴左侧,说明这个点已经过y轴了
考虑若干个点的情形,
如果所有点都在y轴左侧了,说明这辆车过去了,根本不会撞到
同理,如果所有点都在y轴右侧,说明人走到对应点的时候,车还没到,也不会被撞
考虑有的点在y轴左侧,有的在y轴右侧
比如(xi,yi)在人到的时候在左侧,(xj,yj)在人到的时候在右侧
那么根据零点定理,这两点确定的直线与y轴必有交点,
那么人走的轨迹(0,yi)、(0,yj)确定的直线,
势必会与这条直线有交点,表示人被扫中,
由于这条直线是车内部的直线(至少是边缘线),
交点说明在那一刻人这个点在车里面,
那不就GG了么……
撞了的话会被连撞多久呢,
等那个对应时刻下最右边的点过了y轴就不会被撞了
那我们晚出发这么多时间,就彻底不会被撞了
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const double eps=1e-7;
int n;
double w,v,u,mx,mn;
//0<=yi<=w很重要,不然就不好做了QAQ
int main()
{while(~scanf("%d%lf%lf%lf",&n,&w,&v,&u)){for(int i=0;i<n;++i){double x,y;scanf("%lf%lf",&x,&y);if(!i)mx=mn=x-y/u*v;//(0,0)->(0,y)的时间y/u下(x,y)以v速度到哪里了else mx=max(mx,x-y/u*v),mn=min(mn,x-y/u*v); }if(mx<eps||mn>-eps)printf("%.7lf\n",w/u);//直接走过 不会撞到else printf("%.7lf\n",w/u+mx/v);//等mx/v秒车过去了就不会被撞 }return 0;
}
Codeforces Round #365 (Div. 2) C. Chris and Road(思维题-零点定理)相关推荐
- Codeforces Round #540 (Div. 3)--A. Water Buying(简单思维题-有点坑)
A. Water Buying 题目链接http://codeforces.com/problemset/problem/1118/A time limit per test:1 second mem ...
- Codeforces Round #323 (Div. 2): C. GCD Table(思维题)
题意: 给你一个长度为n的序列a[1]~a[n], 之后用这个序列生成一个n*n的矩阵,其中矩阵第i行第i列的值为a[i],第i行第j列(j!=i)的值为Gcd(a[i], a[j]),现在给你一个矩 ...
- Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...
- Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...
- Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维
传送门 文章目录 题意: 思路: 题意: 思路: 直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi,xi+1的贡献的. 假设当前的xi=x, ...
- Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维
传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai,目标值bib_ibi,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja ...
- Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对
传送门 文章目录 题意: 思路: 题意: 给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子 ...
- Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个显然的性质就是每组操作最多不会超过两次. 很容易想到一个很暴力的思路,就是枚举x∈[1,2∗k]x \in [1,2*k]x∈[1,2∗k] ...
- Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学
传送门 文章目录 题意: 思路: 题意: 给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod: 思路: 首先可以发现aaa的长度不能超过log2dlog_2dl ...
- Codeforces Round #620 (Div. 2) E. 1-Trees and Queries 思维 + LCA
传送门 文章目录 题意 思路: 题意 思路: 照例,先考虑不加边怎么做.由于可以经过重复的边或点,设aaa与bbb之间长度为lenlenlen,那么需要len<=klen<=klen< ...
最新文章
- AI“生死”落地:谁有资格入选AI Top 30+案例?
- 刚刚、Gartner发布物联网技术十大战略和趋势
- SQL用于更新ID为顺序ID(用于删除了几条数据导致id不连续)
- SQL Server 多实例下的复制
- 将Windows8安装在手持终端上
- 01 java 编程基础
- git服务器与客户端的安装与使用
- 光流 | 基于HS光流算法的稠密光流提取(Matlab源代码)
- 2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
- 抽象工厂模式_设计模式系列—抽象工厂模式
- ssl1072-砝码称重【dp练习】
- android opencv 水印,关于opencv对图片添加水印
- Android内存分配的注意事项
- app devops建设
- 4号线地铁站点列表_【暖房】6号线酒店式白领公寓;房山地铁站品牌公寓;4号线分散式公寓;朝阳门附近整租房源...
- 往事如烟,残阳如血......——逝去的背影(五)
- hex与bin文件及hex2bin
- unity3d 连接mysql_我学院:Unity3D连接MySql数据库的方法
- Python中的数据序列(元组、集合、字典)
- FASTAPI接口服务