欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计蒜客 ICPC Pacific Northwest Regional Contest 2017 Gym-101615E Straight Shot

程序员文章站 2022-04-27 13:57:50
...

E题

一道物理题
题意:机器人从(0,0)出发,沿某一方向以速度 v 前进。
途径几条宽度不等的河流,具有向上或向下的速度。
问机器人能否在时间限制内到达(X,0)点。

思路:
分解速度
先求时间,再判断
计蒜客 ICPC Pacific Northwest Regional Contest 2017 Gym-101615E Straight Shot
刚开始写的时候,有一点没注意,导致 Too hard 的情况 输出了 “nan"
解释是可能出现了非法运算。
检查发现,没有判断求出的 vy 是否比 v 大,就进行了开平方操作。

#include <bits/stdc++.h>
using namespace std;

// 速度分解 先求时间 再检验
// 输出了 nan ???
double n, x, v; 
double ll, rr, vv, k=0;

int main()
{
    scanf("%lf%lf%lf", &n, &x, &v);
    for(int i=0; i<n; i++){
        scanf("%lf%lf%lf", &ll, &rr, &vv);
        k+=vv*(ll-rr);
    }
    double vy=k/x;
    if(fabs(vy)>v) cout<<"Too hard"<<endl;
    else{
        double vx=sqrt(v*v-vy*vy);
        double t=x/vx, flag=2*x/v;
        if(t>flag) cout<<"Too hard"<<endl;
        else printf("%.3lf\n", t);
    }

    //system("pause");

    return 0;
}
相关标签: 2020暑假补题记录