11722 - Joining with Friend

You are going from Dhaka to Chittagong by train and you came to know one of your old friends is going
from city Chittagong to Sylhet. You also know that both the trains will have a stoppage at junction
Akhaura at almost same time. You wanted to see your friend there. But the system of the country is
not that good. The times of reaching to Akhaura for both trains are not fixed. In fact your train can
reach in any time within the interval [t1, t2] with equal probability. The other one will reach in any
time within the interval [s1, s2] with equal probability. Each of the trains will stop for w minutes after
reaching the junction. You can only see your friend, if in some time both of the trains is present in the
station. Find the probability that you can see your friend.
Input
The first line of input will denote the number of cases T (T < 500). Each of the following T line will
contain 5 integers t1, t2, s1, s2, w (360 ≤ t1 < t2 < 1080, 360 ≤ s1 < s2 < 1080 and 1 ≤ w ≤ 90). All
inputs t1, t2, s1, s2 and w are given in minutes and t1, t2, s1, s2 are minutes since midnight 00:00.
Output
For each test case print one line of output in the format ‘Case #k: p’ Here k is the case number and
p is the probability of seeing your friend. Up to 1e − 6 error in your output will be acceptable.
Sample Input
2
1000 1040 1000 1040 20
720 750 730 760 16
Sample Output
Case #1: 0.75000000
Case #2: 0.67111111

题解:题意就是两个人见面,到达时间都在一个时间段内,然后停留w分钟再走,让求见面的概率;

两个把两个人到达时间设为x,y则两个人见面为 -w=<x-y<=w;

在二维坐标系上画出来,总样本是(t2-t1)(s2-s1);只需要求平行线-w=<x-y<=w与矩形相交的面积比矩形的面积即可;

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
double t1,t2,s1,s2,w;
double getmj(double b){
double y1=t1+b,y2=t2+b,x1=s1-b,x2=s2-b;
if(y1>=s2)return 0;
if(x1>=t2)return (s2-s1)*(t2-t1);
/*if(y1>=s1&&y2>=s2)return 0.5*(s2-y1)*(t2-x2-t1);
if(y1<s1&&y2>=s2)return 0.5*(s2-s1)*(x2-x1)+(x1-t1)*(s2-s1);
if(y1>s1&&y2<s2)return 0.5*(t2-t1)*(y2-y1)+(t2-t1)*(s2-y2);
if(x1>=t2)return (s2-s1)*(t2-t1);
if(y1<=s1&&y2<=s2)return (s2-s1)*(t2-t1)-0.5*(t2-x1)*(y2-s1);*/
if(y1>=s1){
if(x2<=t2)return 0.5*(x2-t1)*(s2-y1);
else return 0.5*(t2-t1)*(y2-y1)+(s2-y2)*(t2-t1);
}
else{
if(x2<=t2)return 0.5*(s2-s1)*(x2-x1)+(x1-t1)*(s2-s1);
else return (s2-s1)*(t2-t1)-0.5*(t2-x1)*(y2-s1); //坑,这里写错了,错了半天,其实角度45度,写一个就行
}
}
int main(){
int T,kase=0;
scanf("%d",&T);
while(T--){
scanf("%lf%lf%lf%lf%lf",&t1,&t2,&s1,&s2,&w);
double ans=(getmj(-w)-getmj(w))/((s2-s1)*(t2-t1));
printf("Case #%d: %.8lf\n",++kase,ans);
}
return 0;
}

  

uva11722 - Joining with Friend(几何概率)的更多相关文章

  1. UVa 11722 Joining with Friend (几何概率 + 分类讨论)

    题意:某两个人 A,B 要在一个地点见面,然后 A 到地点的时间区间是 [t1, t2],B 到地点的时间区间是 [s1, s2],他们出现的在这两个区间的每个时刻概率是相同的,并且他们约定一个到了地 ...

  2. UVA - 11722 Joining with Friend 几何概率

                            Joining with Friend You are going from Dhaka to Chittagong by train and you ...

  3. [uva11722&&cogs1488]和朋友会面Joining with Friend

    几何概型,<训练指南>的题.分类讨论太神啦我不会,我只会萌萌哒的simpson强上~这里用正方形在y=x-w的左上方的面积减去在y=x+w左上方的面积就是两条直线之间的面积,然后切出来的每 ...

  4. UVA11722 Jonining with Friend

    Joining with Friend You are going from Dhaka to Chittagong by train and you came to know one of your ...

  5. Entity Framework: Joining in memory data with DbSet

    转载自:https://ilmatte.wordpress.com/2013/01/06/entity-framework-joining-in-memory-data-with-dbset/ The ...

  6. uva 11722 - Joining with Friend(概率)

    题目连接:uva 11722 - Joining with Friend 题目大意:你和朋友乘火车,而且都会路过A市.给定两人可能到达A市的时段,火车会停w.问说两人能够见面的概率. 解题思路:y = ...

  7. How to quickly become effective when joining a new company

    How to quickly become effective when joining a new company The other day my colleague Richard asked ...

  8. Apache Spark as a Compiler: Joining a Billion Rows per Second on a Laptop(中英双语)

    文章标题 Apache Spark as a Compiler: Joining a Billion Rows per Second on a Laptop Deep dive into the ne ...

  9. LINQ之路13:LINQ Operators之连接(Joining)

    Joining IEnumerable<TOuter>, IEnumerable<TInner>→IEnumerable<TResult> Operator 说明 ...

随机推荐

  1. UVa1586 Molar mass

    #include <stdio.h> int GetQuantity(char* q, char** p){    int quantity = 0;    while (*q & ...

  2. 关于$.ajax的请求格式

    1 $.ajax({ 2 url: "http://localhost:5311/UserService.asmx/GetLoginId",//请求的URL 3 type: &qu ...

  3. codeforces 626E. Simple Skewness 三分

    题目链接 给n个数, 让你去掉一些数, 使得剩下的数的平均值-中位数的差值最大. 先将数组排序, 然后枚举每一个数作为中位数的情况, 对于每个枚举的数, 三分它的左右区间长度找到一个平均值最大的情况, ...

  4. cocos2dx vs2010打开打印窗口

    vs2010下调试时,有时需要有打印窗口. 在main.cpp函数的开始处,加入一下 AllocConsole(); freopen("CONIN$", "r" ...

  5. Webx pull service

    1.概述 pull service的功能是将对象置入模板中.被pull service放到模板中的对象,不需要应用程序的干预即可直接使用.如果模板没有用到某个对象,则不会产生创建该对象的开销.看起来, ...

  6. File类常用方法

    File类是IO中常用的类 先介绍几个常用的方法: public boolean canRead(),public boolean canWrite() 测试当前文件是否可读可写,若是则返回true ...

  7. 【源码】实现Android闹钟功能使用HTML+JS,并附带Alarm代码分享

    先是开发手册中最终功能的实现函数,再是Alarm接口的源码. 参数: argu:型如“key1=value1;key2=value2;......”的参数表.首先,该参数表支持 rexseeNotif ...

  8. Android实现视频录制

    安卓实现视频录制,有两种方法,一种是调用自带的视频功能,一种是使用MediaRecorder. 每种方法都有自己的优缺点.接下来,把两种方法的代码写出来. 先说第一种方法,也是最简单的方法,那就是直接 ...

  9. STL之string

    string构造函数,很多重载函数: #include <iostream> #include <string> using namespace std; int main() ...

  10. CSS引入的方式有哪些? link和@import的区别是?转载

    CSS引入的方式有哪些? link和@import的区别是? HTML 中引入 CSS 的方式 有 4 种方式可以在 HTML 中引入 CSS.其中有 2 种方式是在 HTML 文件中直接添加 CSS ...