2014北京邀请赛 F Football on Table
来源:互联网 发布:ubuntu 桥接模式简书 编辑:程序博客网 时间:2024/06/03 09:24
题目来源:
http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=34986
题意:
一个人在玩桌面足球,有m行球员,每行球员有ai个,给出每个球员的宽度和相邻球员之间的距离,球从最左边射出,给出球的起点坐标跟方向向量,问能够到达最右边的概率。
思路:球员的相对位置固定,球员可以移动一定的距离。计算球经过球员的概率, 用1 - 球经过球员的概率 即为 可以穿过的概率。 枚举一遍所有行。
代码如下:
const int Max_N = 105 ;double w[Max_N] , tail[Max_N] , pos[Max_N] ;int main(){ int T ; scanf("%d" , &T) ; double W, l , X, Y , dx ,dy , dis , row , tot , y , ans ; int m , num , i , k = 1; while(T--){ ans = 1.0 ; scanf("%lf%lf" , &l , &W) ; scanf("%lf%lf%lf%lf" , &X, &Y , &dx , &dy) ; scanf("%d" , &m) ; while(m --){ tot = 0.0 ; pos[0] = 0.0 ; scanf("%lf%d" , &row , &num) ; y = Y + dy * (row - X) / dx ; for(i = 0 ; i < num ; i++){ scanf("%lf" , &w[i]) ; tot += w[i] ; } tail[0] = w[0] ; for(i = 1 ; i < num ; i++){ scanf("%lf", &dis) ; pos[i] = pos[i - 1] + w[i - 1] + dis ; tail[i] = pos[i] + w[i] ; tot += dis ; } double cnt = 0.0 , len = 0.0 ; double mov = W - tot ; for(i = 0 ; i < num ; i++){ // 枚举 cnt = 0.0 ; if(pos[i] <= y && (tail[i] + mov >= y) ){ if(tail[i] >= y) cnt = (pos[i] + mov <= y) ? mov : (y - pos[i]) ; else cnt = (pos[i] + mov >= y) ? w[i] : (tail[i] - y + mov) ; } len += cnt ; } if( mov == 0 ){ ans = 0 ; break ; } else ans = ans * (mov - len) / mov ; } printf("Case #%d: %.5lf\n" ,k++ , ans) ; }}
0 0
- 2014北京邀请赛 F Football on Table
- 2014北京邀请赛 F Football on Table
- BNUOJ 34986 北京邀请赛 F题 Football on Table 几何题
- Football on Table
- BNU 34986 Football on Table
- 2014 北京邀请赛 B
- 2014 北京、西安邀请赛
- bnu 34986 Football on Table(数学+暴力)
- 2014北京邀请赛 Happy Reversal
- 2014北京邀请赛(部分题解)
- 2014 北京邀请赛ABDHJ题解
- 北京邀请赛
- BNU 34986 Football on Table 解题报告(暴力)
- 2014ACM亚洲区域北京邀请赛总结
- 2014ACM 北京邀请赛 B题
- 2014北京邀请赛 B Beautiful Garden
- 2014acm北京邀请赛A题
- hash(2014北京邀请赛)bnu34990
- OpenGL入门学习之八——使用显示列表
- zoj 3233 容斥原理 + 双条件
- kmp变形 如何判断第i个字符是否匹配函数 hdu 4749
- bzoj 2732 [HNOI2012]射箭 半平面交(刘汝佳版不超时) + 整型二分处理
- ioctl()函数详解分类
- 2014北京邀请赛 F Football on Table
- 2012 ICPC/ACM 成都现场赛 Candy
- 线性筛素数的方法
- SG函数 + 线性筛质数 ACdream 1112
- Android canvas 清空内容
- 黑马程序员--Java面向对象——IO流体系
- Ceilometer的知识总结
- OpenGL入门学习之九——使用混合来实现半透明效果
- 命令行进入android系统里执行linux命令的方法——busybox