codeforces 703C

来源:互联网 发布:linux运行级别介绍 编辑:程序博客网 时间:2024/05/21 09:14

题意:有一辆汽车从马路上穿过(不会让人的,可以看成凸多边形),一个人从马路这头最快要多久可以走到对面。速度不能超过一定值,不能被撞。

题解:贪心。过马路无非两种情况,(1)在凸多边形的每个点到达马路上之前通过这个点(全部可以的话就急速通过)。每个点走过之后再急速穿过。



#include<bits/stdc++.h>using namespace std;typedef pair<double,double> pdd;#define X first#define Y secondconst double eps = 1e-8;int main(){ios_base::sync_with_stdio(false);int n;double w,v,u;while(cin>>n>>w>>v>>u){vector<pdd> d(n);for(int i=0;i<n;i++){cin>>d[i].X>>d[i].Y;}bool ok = true;for(int i=0;i<n;i++){if(d[i].Y/u-eps>d[i].X/v){ok = false;break;}}if(ok){cout<<setprecision(6)<<fixed<<w/u<<endl;continue;}double ret = w/u;for(int i=0;i<n;i++){ret = max(d[i].X/v+(w-d[i].Y)/u,ret);}cout<<setprecision(6)<<fixed<<ret<<endl;}return 0;}


0 0
原创粉丝点击