tmk射气球
发布日期:2021-07-01 00:13:11
浏览次数:3
分类:技术文章
本文共 2293 字,大约阅读时间需要 7 分钟。
问题 : tmk射气球
时间限制: 1 Sec 内存限制: 128 MB题目描述
有一天TMK在做一个飞艇环游世界,突然他发现有一个气球沿匀速沿直线飘过,tmk想起了他飞艇上有一把弓,他打算拿弓去射气球,为了提高射击的准确性,他首先在飞艇上找到一个离气球最近的一个点,然后射击(即使气球在飞船的正上方),现在求某些时刻飞艇上的点和气球的距离最小是多少(这个最小距离我们简称为飞艇到气球的距离)。
输入
第一行一个整数T(T<=20),表示有T组测试数据
每组测试数据,有两行。
第一行有5个整数,h,x1,y1,x2,y2,其中h表示飞船的高度,飞船可抽象为一个线段,(x1,y1)(x2,y2)分别是这个线段的端点(有可能会有(x1,y1)(x2,y2)重合的情况)
第二行有6个整数,x,y,z,X,Y,Z分别表示气球的在第0秒的时候的横坐标,纵坐标,高度,一秒时间气球横坐标的变化量,一秒时间气球纵坐标的变化量,一秒时间气球高度的变化量(如果现在气球在(x0,y0,z0)下一秒坐标就为(x0+X,y0+Y,z0+Z))
第三行1个整数n,表示询问组数
接下来的n行,每行一个整数,表示询问的秒数t
题目涉及的整数除了T以外,范围均为[0,1000]
输出
每组询问输出n行,每行输出一个数,表示在t秒的时候飞艇与气球的距离最小是多少,保留两位小数
样例输入
11 1 1 2 20 0 0 4 4 4203
样例输出
1.7317.92
#include#include int main(){ double h, x1, y1, x2, y2, x, y, z, vx, vy, vz, x0, y0, z0, la, lb, l, p; int T, t, n; while (~scanf("%d", &T)) { while (T--) { scanf("%lf%lf%lf%lf%lf", &h, &x1, &y1, &x2, &y2); scanf("%lf%lf%lf%lf%lf%lf", &x0, &y0, &z0, &vx, &vy, &vz); scanf("%d", &n); while (n--) { scanf("%d", &t); x = x0 + vx * t; y = y0 + vy * t; z = z0 + vz * t; la = sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1) + (z - h) * (z - h)); lb = sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2) + (z - h) * (z - h)); l = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); if (l == 0) { printf("%.2f\n", la); continue; } if (la + lb == l) { printf("0.00\n"); continue; } if (la + l == lb) { printf("%.2f\n", la); continue; } if (lb + l == la) { printf("%.2f\n", lb); continue; } if (l * l + lb * lb < la * la || l * l + la * la < lb * lb) { printf("%.2f\n", la < lb ? la : lb); continue; } p = (la + lb + l) / 2; printf("***%.2f\n", (2 * sqrt(p * (p - la) * (p - lb) * (p - l))) / l); } } } return 0;}
转载地址:https://lzyws739307453.blog.csdn.net/article/details/80024288 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月13日 01时08分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(XWZ)的Python学习笔记Ⅱ------面向对象编程
2019-05-01
(XWZ)的Python学习笔记Ⅴ——I/O编程
2019-05-01
(XWZ)的python学习笔记Ⅶ——正则表达式
2021-07-04
(XWZ)的python学习笔记——pandas
2021-07-04
深度学习第一课——神经网络
2021-07-04
高斯混合模型
2021-07-04
(6)CMake入门笔记--CMake官网教程
2021-07-04
(7)CMake入门笔记--CMake官网教程
2021-07-04
(8)CMake入门笔记--CMake语法
2019-05-01
(9)CMake入门笔记--同时生成动态库与静态库
2019-05-01
beyond compare 4 的30天试用期已过-解决方法
2019-05-01
面试海量数据问题
2019-05-01
TensorFlow图优化(一)-CSE(公共子表达式消除)
2019-05-01
TensorFlow图优化(二)-Remapper,layout
2019-05-01
TensorFlow btc allocator
2019-05-01
3D点云图实验
2019-05-01
linux设备驱动的实现与理解
2019-05-01
python遇到‘\u’开头的unicode编码
2019-05-01
RedHat Linux网络配置
2019-05-01
Linux下如何退出图形界面?
2019-05-01