题目

你从(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(思维题-零点定理)相关推荐

  1. 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 ...

  2. 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]),现在给你一个矩 ...

  3. Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...

  4. Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...

  5. Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维

    传送门 文章目录 题意: 思路: 题意: 思路: 直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi​,xi+1​的贡献的. 假设当前的xi=x, ...

  6. Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维

    传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm条边的图,每个点都有一个当前值aia_iai​,目标值bib_ibi​,每次可以选择一条边(i,j)(i,j)(i,j),将ai,aja ...

  7. 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)的子 ...

  8. Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分

    传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个显然的性质就是每组操作最多不会超过两次. 很容易想到一个很暴力的思路,就是枚举x∈[1,2∗k]x \in [1,2*k]x∈[1,2∗k] ...

  9. Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你d,modd,modd,mod,让你求能构造出如下序列aaa的个数模modmodmod: 思路: 首先可以发现aaa的长度不能超过log2dlog_2dl ...

  10. Codeforces Round #620 (Div. 2) E. 1-Trees and Queries 思维 + LCA

    传送门 文章目录 题意 思路: 题意 思路: 照例,先考虑不加边怎么做.由于可以经过重复的边或点,设aaa与bbb之间长度为lenlenlen,那么需要len<=klen<=klen< ...

最新文章

  1. AI“生死”落地:谁有资格入选AI Top 30+案例?
  2. 刚刚、Gartner发布物联网技术十大战略和趋势
  3. SQL用于更新ID为顺序ID(用于删除了几条数据导致id不连续)
  4. SQL Server 多实例下的复制
  5. 将Windows8安装在手持终端上
  6. 01 java 编程基础
  7. git服务器与客户端的安装与使用
  8. 光流 | 基于HS光流算法的稠密光流提取(Matlab源代码)
  9. 2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
  10. 抽象工厂模式_设计模式系列—抽象工厂模式
  11. ssl1072-砝码称重【dp练习】
  12. android opencv 水印,关于opencv对图片添加水印
  13. Android内存分配的注意事项
  14. app devops建设
  15. 4号线地铁站点列表_【暖房】6号线酒店式白领公寓;房山地铁站品牌公寓;4号线分散式公寓;朝阳门附近整租房源...
  16. 往事如烟,残阳如血......——逝去的背影(五)
  17. hex与bin文件及hex2bin
  18. unity3d 连接mysql_我学院:Unity3D连接MySql数据库的方法
  19. Python中的数据序列(元组、集合、字典)
  20. FASTAPI接口服务

热门文章

  1. Datawhale组队学习周报(第031周)
  2. 6自由度串联机器人D-H建模方法
  3. 海龟作图python等边三角形_python 海龟作图
  4. 我用 Python 写了个基金涨跌通知助手
  5. scrapy 出现400 Bad Request 问题
  6. 杨氏双缝干涉实验与薛定谔的猫
  7. ​Copyright到底是什么意思?
  8. android 谷歌地图真实距离,Android谷歌地图点之间的距离
  9. excel怎么录入身份证号码快速方便?
  10. 测试结果OK、NG、NT、POK的意思