CD1608

来源:互联网 发布:现货白银分钟线数据 编辑:程序博客网 时间:2024/06/07 18:40
上次没有做出来,这种题还是要分各种小情况仔细讨论的。

#include<iostream>#include<stdlib.h>#include<math.h>#include<stdio.h>#include<algorithm>#include<queue>#include<string.h>#include<stack>#include<math.h>#include<string>#include<stdlib.h>#include<list>#include<vector>using namespace std;int main(){    int i,j,k;    int cases;    int t,t1;    int a,b;    cin>>cases;    while (cases--)    {        cin>>a>>b>>t>>t1;        double ans=0.0;        if (b+t<=t1)            ans=0.0;        else if (t1-t>a&&t1>=b)            ans=(double)(b-(t1-t))/(double)(b-a);        else if (t1-t>a&&t1<b)            ans=(double)t/(double)(b-a);        else if (t1-t<=a&&t1>=b)            ans=1.0;        else if (t1-t<=a&&t1<b&&t1>a)            ans=(double)(t1-a)/(double)(b-a);        printf("%.4f\n",ans);    }}



懒惰的妹纸
Time Limit: 1000 ms Memory Limit: 65536 kB Solved: 172 Tried: 1167
Description

cjw是个很懒的人,每次只要上二楼都要坐电梯,而且cjw做事很随意,一般是玩dota玩到一半突然想起快上课了(她说谁想找虐的有空找她玩),就赶紧跑去上课了。现在cjw会在[a,b](0<=a<b)的任一时刻到达第一层楼,但是cjw最多只能等待t时间,如果等待t时间后电梯还没有开始上升,她就会哭着走上楼T____T。
今天电梯抽风了,电梯只向上走一次,刚开始在第一层楼,且开始运动的时间是t1,到达最后一层后电梯就不再工作。
现在cjw想知道自己乘上电梯的概率是多大。她数学太差了,算不出来,你能帮她算出来吗?
题目中提到的时间量单位均为秒。
cjw在[a,b]每个时刻到达的概率相等。
Input

第一行一个整数T表示有T组测试数据(T<=5000)
每组数据输入四个整数 a,b,t,t1(0<=a<b<=1000000, 0<=t<=500000, 0<=t1<=1000000)。
Output

每组数据输出一行,仅含一个实数表示cjw乘上电梯的概率(保留4位小数)。
Simple Input

2
5 10 5 10
2 5 2 6
Simple Output

1.0000
0.3333
Hint

输入量很大,请使用scanf代替cin来输入。
为了避免可能出现的精度问题,请使用double代替float,使用%lf读入,%f输出
原创粉丝点击