codeforces 703C

    xiaoxiao2023-06-01  1

    题目链接:http://codeforces.com/contest/703/problem/C

    思路:分三种情况:

    ①. 人在走到各顶点对应纵坐标时车均在右侧,即均未到达。

    ② .人在走到各顶点对应纵坐标时车均在左侧,即均已驶过。

    ③. 左右两侧均有分布。

    对于①②,人可以直接以最快速度行走至终点,即w / u。

    对于③,找出相对人最晚到达的车,人必须在0 ~ y 之间进行速度调整,但时间都是t = x / v。

    #include<cstdio> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; int main() { int n,w,x,y; double v,u,minx=10000,maxx=-10000; int flagx,flagy; scanf("%d%d%lf%lf",&n,&w,&v,&u); while(n--) { scanf("%d%d",&x,&y); if(y/u-x/v<minx) { flagx=x; flagy=y; minx=y/u-x/v; } maxx=max(maxx,y/u-x/v); } if(maxx<=0||minx>=0) printf("%.10lf\n",w/u); else printf("%.10lf\n",flagx/v+(w-flagy)/u); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1262211.html
    最新回复(0)