经典点到线段最短距离的问题,用向量法写的

题目链接:zzuli-2127
#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射气球相关推荐

  1. 【zzulioj 2127】 tmk射气球

    比较简单的题,直接求空间中一个点到直线的距离而已,这道题说了直线和水平的平面 平行,我们可以先求投影到直线的距离,然后再算当前点到直线的距离. Description 有一天TMK在做一个飞艇环游世界 ...

  2. 【郑轻邀请赛 A】tmk射气球

    [题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2127 [题意] [题解] 把气球和飞艇所代表的直线投影到xoy面上 设气球所在位置为 ...

  3. 【zzulioj 2127 tmk射气球】+ 空间点到线段距离

    2127: tmk射气球 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 537 Solved: 97 SubmitStatusWeb Board Des ...

  4. 郑轻校赛 2127 tmk射气球 (数学)

    Description 有一天TMK在做一个飞艇环游世界,突然他发现有一个气球匀速沿直线飘过,tmk想起了他飞艇上有一把弓,他打算拿弓去射气球,为了提高射击的准确性,他首先在飞艇上找到一个离气球最近的 ...

  5. leetcode 452 射气球

    leetcode 452 题 解题思路: 将气球左边界从小到大排序,然后从一个的最右边开始射箭,直到不能扎到下一个气球的最左边为止.偷一波官方题解的图. class Solution {public ...

  6. leetcode452_用最少的箭射气球(python)

    题目: 对于每个气球,提供的输入是水平方向上,纵坐标不重要,因此只要知道开始和结束的横坐标就足够了.开始坐标总是小于结束坐标. 一支弓箭可以沿着 x 轴从不同点完全垂直地射出.  xstart ≤ x ...

  7. zzuli 2126 tmk买礼物 思维题

    2126: tmk买礼物 Time Limit: 1 Sec  Memory Limit: 128 MB Description 明天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LS ...

  8. tmk射气球(郑州轻工业学院第九届ACM程序设计大赛)

    题目描述 有一天TMK在做一个飞艇环游世界,突然他发现有一个气球沿匀速沿直线飘过,tmk想起了他飞艇上有一把弓,他打算拿弓去射气球,为了提高射击的准确性,他首先在飞艇上找到一个离气球最近的一个点,然后 ...

  9. 用最少数量的箭引爆气球

    思路 如何使用最少的弓箭呢? 直觉上来看,貌似只射重叠最多的气球,用的弓箭一定最少,那么有没有当前重叠了三个气球,我射两个,留下一个和后面的一起射这样弓箭用的更少的情况呢? 尝试一下举反例,发现没有这 ...

最新文章

  1. python程序员工作时间_Python程序员是怎么找工作的?怎么最快时间找到自己想要的工作?...
  2. 为什么声明性编码使您成为更好的程序员
  3. 将命令结果赋给变量_不得不了解的quot;变量quot;(2)—— 变量的赋值
  4. 实现模拟内存动态分区分配算法_你还在为了JVM而烦恼么?(内存结构和垃圾回收算法)...
  5. Python飞机大战游戏 附素材及源码
  6. 在CSDN博客和QQ微信等社交媒体中使用表情符号(保姆级图文+实现代码)【杂记】
  7. Minpro-I编程器的驱动安装
  8. socks代理转http代理
  9. Flash Memory 简介
  10. 华为/荣耀 笔记本 HiboardDataReport.exe应用程序错误
  11. (软考高级、高项)信息系统项目管理师(第三版)过关经验
  12. PyCharm使用技巧:windows下快捷键Ctrl+Alt+左箭头(后退)和Ctrl+Alt+右箭头(前进)冲突问题
  13. tableView for TTXS
  14. 两台小米手机如何实现远程控制
  15. UML介绍及怎么看UML图
  16. linux shell grep 非贪婪匹配
  17. linux内核中的GFP_KERNEL和GFP_ATOMIC区别
  18. c语言程序设计名片管理系统,《名片管理系统》 - C语言课程设计
  19. 硬汉DSP TMS320F28335开发板全套资料
  20. 视频教程-嵌入式Linux开发基础-嵌入式

热门文章

  1. Zabbix-05之将zabbix-web的乱码解决
  2. 虚拟现实VR(视景仿真、系统仿真、可视化)工作站配置方案
  3. [转]SP 2010: How To – Event Receivers and Custom Error Pages
  4. AndroidN行为变更和后台优化
  5. 用Java解决牛客网题目WY4炮台攻击
  6. 科目三 临时停车 与 红绿灯 路口 LTS
  7. 基于微信小程序的新冠疫苗预约系统 uinapp
  8. eclipse下快捷键总结【永久更新】
  9. monty python and the holy grail_电影 蒙迪佩登与圣杯 Monty Python and the Holy Grail 英文剧本.doc...
  10. R语言使用dbern函数生成伯努利分布(0-1分布)密度数据、使用plot函数可视化伯努利分布密度数据( Bernoulli distribution)