zzuli 2127 tmk射气球
经典点到线段最短距离的问题,用向量法写的
#include<iostream>
#include<cmath>
using namespace std;
int main()
{double t,x1,y1,z1,x2,y2,z2,x0,y0,z0,x,y,z,h,i,j,xt,yt,zt,T,n;//为了方便,全部定义为了double double d,mid,x3,y3,z3;cin>>T;;while(T--){cin>>h>>x1>>y1>>x2>>y2;//飞船的坐标 cin>>x0>>y0>>z0>>xt>>yt>>zt;//气球起始坐标与移动速度 cin>>n;while(n--){cin>>t;x=x0+xt*t;//t秒时坐标 y=y0+yt*t;z=z0+zt*t;if(x1==x2&&y1==y2)//飞船为一个点 {d=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-h)*(z-h));printf("%.2f\n",d);continue;}else{mid=((x-x1)*(x2-x1)+(y-y1)*(y2-y1))/((x1-x2)*(x1-x2)+(y2-y1)*(y2-y1));//用向量写,判断(x0,y0)点与飞船所在线段的相对位置,mid=|a|cos<a,b>/|b| x3=x1+mid*(x2-x1);//垂足坐标 y3=y1+mid*(y2-y1);z3=h;if(mid>=0&&mid<=1){d=sqrt((x3-x)*(x3-x)+(y3-y)*(y3-y)+(h-z)*(h-z));printf("%.2f\n",d);}else if(mid>1){d=sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y)+(z3-z)*(z3-z));printf("%.2f\n",d);}else if(mid<0){d=sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y)+(h-z)*(h-z));printf("%.2f\n",d);}}}}return 0;
}
zzuli 2127 tmk射气球相关推荐
- 【zzulioj 2127】 tmk射气球
比较简单的题,直接求空间中一个点到直线的距离而已,这道题说了直线和水平的平面 平行,我们可以先求投影到直线的距离,然后再算当前点到直线的距离. Description 有一天TMK在做一个飞艇环游世界 ...
- 【郑轻邀请赛 A】tmk射气球
[题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2127 [题意] [题解] 把气球和飞艇所代表的直线投影到xoy面上 设气球所在位置为 ...
- 【zzulioj 2127 tmk射气球】+ 空间点到线段距离
2127: tmk射气球 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 537 Solved: 97 SubmitStatusWeb Board Des ...
- 郑轻校赛 2127 tmk射气球 (数学)
Description 有一天TMK在做一个飞艇环游世界,突然他发现有一个气球匀速沿直线飘过,tmk想起了他飞艇上有一把弓,他打算拿弓去射气球,为了提高射击的准确性,他首先在飞艇上找到一个离气球最近的 ...
- leetcode 452 射气球
leetcode 452 题 解题思路: 将气球左边界从小到大排序,然后从一个的最右边开始射箭,直到不能扎到下一个气球的最左边为止.偷一波官方题解的图. class Solution {public ...
- leetcode452_用最少的箭射气球(python)
题目: 对于每个气球,提供的输入是水平方向上,纵坐标不重要,因此只要知道开始和结束的横坐标就足够了.开始坐标总是小于结束坐标. 一支弓箭可以沿着 x 轴从不同点完全垂直地射出. xstart ≤ x ...
- zzuli 2126 tmk买礼物 思维题
2126: tmk买礼物 Time Limit: 1 Sec Memory Limit: 128 MB Description 明天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LS ...
- tmk射气球(郑州轻工业学院第九届ACM程序设计大赛)
题目描述 有一天TMK在做一个飞艇环游世界,突然他发现有一个气球沿匀速沿直线飘过,tmk想起了他飞艇上有一把弓,他打算拿弓去射气球,为了提高射击的准确性,他首先在飞艇上找到一个离气球最近的一个点,然后 ...
- 用最少数量的箭引爆气球
思路 如何使用最少的弓箭呢? 直觉上来看,貌似只射重叠最多的气球,用的弓箭一定最少,那么有没有当前重叠了三个气球,我射两个,留下一个和后面的一起射这样弓箭用的更少的情况呢? 尝试一下举反例,发现没有这 ...
最新文章
- python程序员工作时间_Python程序员是怎么找工作的?怎么最快时间找到自己想要的工作?...
- 为什么声明性编码使您成为更好的程序员
- 将命令结果赋给变量_不得不了解的quot;变量quot;(2)—— 变量的赋值
- 实现模拟内存动态分区分配算法_你还在为了JVM而烦恼么?(内存结构和垃圾回收算法)...
- Python飞机大战游戏 附素材及源码
- 在CSDN博客和QQ微信等社交媒体中使用表情符号(保姆级图文+实现代码)【杂记】
- Minpro-I编程器的驱动安装
- socks代理转http代理
- Flash Memory 简介
- 华为/荣耀 笔记本 HiboardDataReport.exe应用程序错误
- (软考高级、高项)信息系统项目管理师(第三版)过关经验
- PyCharm使用技巧:windows下快捷键Ctrl+Alt+左箭头(后退)和Ctrl+Alt+右箭头(前进)冲突问题
- tableView for TTXS
- 两台小米手机如何实现远程控制
- UML介绍及怎么看UML图
- linux shell grep 非贪婪匹配
- linux内核中的GFP_KERNEL和GFP_ATOMIC区别
- c语言程序设计名片管理系统,《名片管理系统》 - C语言课程设计
- 硬汉DSP TMS320F28335开发板全套资料
- 视频教程-嵌入式Linux开发基础-嵌入式
热门文章
- Zabbix-05之将zabbix-web的乱码解决
- 虚拟现实VR(视景仿真、系统仿真、可视化)工作站配置方案
- [转]SP 2010: How To – Event Receivers and Custom Error Pages
- AndroidN行为变更和后台优化
- 用Java解决牛客网题目WY4炮台攻击
- 科目三 临时停车 与 红绿灯 路口 LTS
- 基于微信小程序的新冠疫苗预约系统 uinapp
- eclipse下快捷键总结【永久更新】
- monty python and the holy grail_电影 蒙迪佩登与圣杯 Monty Python and the Holy Grail 英文剧本.doc...
- R语言使用dbern函数生成伯努利分布(0-1分布)密度数据、使用plot函数可视化伯努利分布密度数据( Bernoulli distribution)