集训第六周 数学概念与方法 UVA 11722 几何概型
2015-08-17 10:17
381 查看
---恢复内容开始---
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=31471
题意,两辆火车,分别会在[t1,t2],[s1,s2]的时间段停留在同一个站点w分钟,问两辆火车能够在这个站点相遇的概率。
思路,枚举每一种情况,把两辆火车的相交区间画出来,然后求都在这个区间的概率
View Code
---恢复内容结束---
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
---恢复内容结束---
相关文章推荐
- 2015届华为机试等式变换
- 使用docker实现半自动化代码自动部署与回滚
- 使用docker实现半自动化代码自动部署与回滚
- 【Matrix Factorization】林轩田机器学习技法
- 段错误调试方法
- C++便利文件夹下文件
- POJ 1183 反正切函数的应用
- 使用yum源安装CDH Hadoop集群
- [049] 微信公众平台视频公开课1说话-基础知识
- ArcGIS Runtime SDK for Android 各版本下载地址
- 对table的tr使用display:block显示colspan失效问题的解决
- HTML框架与布局
- EasyUI 基本的拖动和放置
- PostgreSQL 常用命令
- Mac制作映像文件
- Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
- windows多线程同步之事件对象
- jquery当文档载入完毕就执行
- MongoDB学习
- Unity5 打包 AssetBundles (BuildPipeline.BuildAssetBundles)