UVA 11722 概率几何
2017-04-20 00:19
295 查看
题意很简单,就是高中概率几何最基础的问题:两个人分别等可能在[t1,t2]和[s1,s2]出现,若一个人等待超过w分钟,则两人无法相遇,求相遇概率。
设人分别为x,y,满足
t1<=x<=t2
s1<=y<=s2
|x-y|<=w
求上式所包围的面积即可
本题的难度在于求解各种情况,如图6种情况
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
#include<queue>
#include<algorithm>
#include<sstream>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
double sum;
int t1,t2,s1,s2,w;
double area(int b)//求y=x+b下方与矩形的公共面积
{
double s;
if(t1+b>=s2)
s=sum;
else if(t2+b<=s1)
s=0;
else if(t2+b>=s2&&t1+b>=s1)
s=sum-0.5*(s2-t1-b)*(s2-b-t1);
else if(t1+b<s1&&t2+b>s2)
s=0.5*(t2-s1+b+t2-s2+b)*(s2-s1);
else if(t1+b>=s1&&t2+b>s1)
s=0.5*(t1+b-s1+t2+b-s1)*(t2-t1);
else
s=0.5*(t2-s1+b)*(t2+b-s1);
return s;
}
int main()
{
int T;
cin>>T;
int kcase=1;
while(T--)
{
cin>>t1>>t2>>s1>>s2>>w;
sum=(t2-t1)*(s2-s1);
double t=area(w)-area(-w);
double p=t/sum;
printf("Case #%d: %0.8f\n",kcase++,p);
}
return 0;
}
相关文章推荐
- uva11722 - Joining with Friend(几何概率)
- UVA - 11722 Joining with Friend 几何概率
- UVa 11722 Joining with Friend (几何概率 + 分类讨论)
- uva 11722 - Joining with Friend(概率)
- UVA 11722 Joining with Friend [连续概率]
- UVA 11722 Joining with Friend【概率】
- UVA - 11722 Joining with Friend (概率)
- UVA11722(见面概率)
- 概率(和朋友会面,UVA 11722)
- UVa 11722 (概率 数形结合) Joining with Friend
- UVA 11722 Joining with Friend 图形面积+概率
- UVa 11722 - Joining with Friend (概率 数形结合)
- uva 11722 - Joining with Friend(概率)
- UVA 11722 - Joining with Friend(概率)
- uva11722(概率)
- UVA 375 (暑假-几何 -B - Inscribed Circles and Isosceles Triangles)
- uvalive 7635 National Bomb Defusing Squad (几何)
- 概率DP,记忆化搜索(Expect the Expected,uva 11427)
- UVA 10652 Board Wrapping 计算几何
- UVALive 7004(计算几何 判断点与多边形的关系)