URAL 1939 First Seal 解题报告

题目

比赛总结

题意:

杰克船长又要逃跑了……现在他驾着马车匀速前进,要通过一道铁门,但是如果看到守卫开始放下门闸的话可能会勒马以恒定的加速度减速前进。已知马车车长,高度,行进速度,勒马后的加速度,还有门闸的初始高度,以及放门闸后门闸的下降速度,问是否存在这样一个时间点,在守卫放下门闸后,不管船长减速前进还是原速前进,都会撞上门闸或被门闸卡住。注意船长在门闸放下前是不会勒马的。

题解:

也就是求两段区间,在什么时候放下门闸,原速前进和减速前进会撞上,如果两段区间有重叠,说明存在这样的可能性。

注意除法可能会有精度问题,所以最好不用除法。


初中的物理公式不会忘了吧……


//Time:31ms
//Memory:353KB
//Length:561B
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#define MAXN 1010
#define EPS 1e-8
using namespace std;
int main()
{
    //freopen("/home/moor/Code/input","r",stdin);
    long long l,h,H,v,x,a;
    long long ll[2],rr[2],tv,t;
    while(cin>>l>>h>>H>>v>>x>>a)
    {
        l*=x*2*a*x;
        t=(H-h);
        rr[0]=t*v*2*a*x,ll[0]=rr[0]-l;
        tv=max(v*x-a*t,0LL);
        rr[1]=(v*v*x*x-tv*tv),ll[1]=rr[1]-l;
        if(rr[0]<ll[1]||rr[1]<ll[0])    printf("Safe\n");
        else    printf("Crash\n");
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值