您的位置:首页 > 其它

集训第六周 数学概念与方法 UVA 11722 几何概型

2015-08-17 10:17 381 查看
---恢复内容开始---
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=31471
题意,两辆火车,分别会在[t1,t2],[s1,s2]的时间段停留在同一个站点w分钟,问两辆火车能够在这个站点相遇的概率。

思路,枚举每一种情况,把两辆火车的相交区间画出来,然后求都在这个区间的概率

#include"iostream"
#include"cstdio"
#include"cmath"
using namespace std;

int ca;
double t1,t2,s1,s2,w,ans;

double caculate(double b)
{
int y1=t1+b,y2=t2+b;
if(y2<s1) return 0;
if(y1<s1)
{
if(y2<s2) return 0.5*(y2-s1)*(y2-s1);
else return 0.5*(s2-s1)*(2*y2-s1-s2);
}
if(y1<s2)
{
if(y2<s2) return 0.5*(t2-t1)*(y1-s1+y2-s1);
else return (t2-t1)*(s2-s1)-0.5*(s2-y1)*(s2-y1);
}
return (t2-t1)*(s2-s1);
}

void Init()
{
scanf("%lf%lf%lf%lf%lf",&t1,&t2,&s1,&s2,&w);
}

void Work()
{
ans=(caculate(w)-caculate(-w))/((t2-t1)*(s2-s1));
}

void Print()
{
printf("Case #%d: %.8f\n",ca++,ans);
}

int main()
{
int T;
ca=1;
cin>>T;
while(T--)
{
Init();
Work();
Print();
}
return 0;
}


View Code

---恢复内容结束---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: