您的位置:首页 > 其它

UVA 11722 Joining with Friend [连续概率]

2012-10-29 18:09 323 查看
  A在[S1,S2]到达,B在[T1,T2]到达,到达后都会等W分钟,问相遇的概率。

  概率论课本上的题目了,列出三个方程s1<=S<=s2,t1<=T<=t2,|T-S|<=w。然后可以转化为几何图形求面积,需要讨论求解。

  

#include <string.h>
#include <stdio.h>
int cas, t1, t2, s1, s2, w;
double area(int w){
int lc = t1+w, rc = t2+w, uc = s2-w, dc = s1-w;
if (lc >= s2) return 0;
if (rc <= s1) return (t2-t1)*(s2-s1);
bool bl = (lc>=s1 && lc<=s2);
bool br = (rc>=s1 && rc<=s2);
bool bu = (uc>=t1 && uc<=t2);
bool bd = (dc>=t1 && dc<=t2);
if (bl&&bu) return (lc-s2)*(lc-s2)*0.5;
if (bl&&br) return (t2-t1)*(s2-lc+s2-rc)*0.5;
if (bd&&bu) return (s2-s1)*(uc-t1+dc-t1)*0.5;
if (bd&&br) return (t2-t1)*(s2-s1)-(rc-s1)*(rc-s1)*0.5;
return 0;
}
int main(){
scanf("%d", &cas);
for (int ca = 1; ca <= cas; ca++) {
scanf("%d%d%d%d%d", &t1, &t2, &s1, &s2, &w);
printf("Case #%d: %.7f\n", ca, (area(-w)-area(w))/(t2-t1)/(s2-s1));
}
return 0;
}


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