HZAU 1018 Catching Dogs
2016-05-16 19:47
309 查看
题目连接
模拟
模拟
#include<iostream> #include<cstdio> #include<cmath> using namespace std; const int maxn = 10 + 10; int n, v0; int v[maxn]; double p[maxn]; void solve() { double p0 = 0; double ans = 0; for(int i = 0; i < n; i++) scanf("%lf%d", &p[i], &v[i]); bool flag = true; for(int i = 0; i < n; i++){ if (v[i] == 0) { double t = abs(p0 - p[i])/v0; ans += t; p0 = p[i]; for(int j = i + 1; j < n; j++) p[j] += (v[j] * t); continue; } int s; if(p[i] == p0) s = 0; else if((p[i] - p0) * v[i] > 0) s = 1; // zhuiji else s = 2; //xiangyu if(s == 1 && abs(v[i]) >= v0) {flag = false; break;} double t; if(s == 1) { t = abs(p0 - p[i]) / (v0 - abs(v[i])); p0 += (v[i]/abs(v[i]) * t * v0); } else if(s == 2) { t = abs(p0 - p[i]) / (v0 + abs(v[i])); p0 -= (v[i]/abs(v[i]) * t * v0); } else t = 0; ans += t; for(int j = i + 1; j < n; j++) p[j] += (v[j] * t); } if(flag) printf("%.2lf\n", ans); else printf("Bad Dog\n"); } int main(){ //freopen("input.txt", "r", stdin); while(scanf("%d%d", &n, &v0) != EOF) solve(); }
相关文章推荐
- CSS 3 属性选择器
- 第10、11周项目1- 点-圆-圆柱类族的设计(1)
- isight整数规划问题求解,用most算法
- 接口测试及服务器性能压测
- POJ 3254 Corn Fields 状压DP
- linux install g++
- 软件工程个人作业08
- 【OK210试用体验】进阶篇(2)视频图像采集之MJPG-streamer编译(arm移植)
- 算法_记忆化搜索DFS_地宫取宝
- 在O(1)时间删除链表结点
- 42.扑克牌顺子(快速排序)
- ARToolKit增强现实实践文档
- Spark 常用参数及调优
- 结构图
- 【转】netty线程模型
- Debian系列linux的安装命令
- Mybatis,oracle,ORA-00933: SQL 命令未正确结束
- Hdu-1867 A + B for you again
- 2016"百度之星" - 资格赛 Problem C 字典树
- 1-9九个数字不重复组成一个三位数加法算式,求出所有组合