/*
爆头 Description
gameboy是一个CS高手,他最喜欢的就是扮演警察,
手持M4爆土匪的头。也许这里有人没玩过CS,有必
要介绍一下“爆头”这个术语:所谓爆头,就是子
弹直接命中对方的头部,以秒杀敌人。 现在用一个三维的直角坐标系来描述游戏中的三维空间
(水平面为xoy平面,z轴正方向是上方)。
假设游戏中角色的头是一个标准的球。告诉
你土匪的身高,头部半径,所站位置的坐标;
gameboy所控警察的身高,头部半径,
所站位置的坐标,以及枪头所指方向的单位向量。
gameboy所控警察所握的是M4,抢瞄准时枪膛中的子弹跟视线基本同线,
我们忽略它们的距离,就当成同线。由于土匪手持AK47,所以他是很嚣张地正立着。
而警察手持M4,正在瞄准,由于瞄准时身体微弯,视线从头心出发,
他头部的实际高度比正立时低10%。 你的任务就是,计算gameboy在这一刻扣下扳机,能否爆土匪的头。
注意:这里忽略子弹的直径和重力作用,也就是说子弹是无限小的,
弹道是一条笔直的射线,警察与土匪间没有障碍物。并且只要子弹擦到头部,
哪怕是边缘,也算爆头。 Input
测试数据的第一行有一个正整数T,表示有T组测试数据。
每组数据的第一行有五个实数,h1,r1,x1,y1,z1,
分别表示土匪的身高,头部半径以及所站的位置。
第二行有八个实数,h2,r2,x2,y2,z2,x3,y3,z3,
分别表示警察的身高,头部半径,所站位置,以及枪头所指方向的方向向量。 Output
每一组输入数据对应一行输出。如果能爆土匪的头,输出"YES",否则输出"NO"。 Sample Input
2 1.62 0.1 10.0 10.0 10.0 1.80 0.09 0.0 0.0 0.0 1.0 1.0 1.0 1.62 0.1 0.0 0.0 0.0 1.80 0.09 10.0 10.0 10.0 -1.0 -1.0 -1.0 Sample Output
YES YES
方法:余弦定理,夹角;
*/

首先要知道向量的运算:向量的向量积。如果你这个不了解的话,那这题就做不解了。

先看一下定义:两个向量ab的向量积是一个向量,它的模为|a||b|sinθ(其中θ是ab的夹角),它的方向垂直于a与b所有决定的平面(既垂直于a又垂直于b),其指向按右手法则从a转向b来确定,记为a×b

接下来看下叉乘的几何意义:

看图就应该明白了吧,就是平行四边形的面积了。

接下来就是解题的思路了:

首先就是将题目进行抽象化:1.求出匪头中心的三维坐标

             2.求警头头中心的三维坐标

第二步就是求出两个向量的三维坐标:分别是:

 

第三步是:就是进行叉乘运算了。叉乘公式我在之前的博客中说过了,此处不再累述。

两个向量叉乘的就是这个平行四边形的面积了。但是所要求的就是上图中匪头到子弹向量的距离。

这便用到了叉乘的几何意义。只要把它除以上图中第一个向量的模便求出这个高即距离d;

最后一步但是求出d-r1是否小于等于0.小于则YES,否则NO.需要注要的问题:所有变量均为double型,除一个的.

ACM1174_爆头解题思路_空间三维坐标求点到直线的距离的更多相关文章

  1. hdu 1174:爆头(计算几何,三维叉积求点到线的距离)

    爆头 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  2. HDU1174(空间点到直线的距离,用叉积)

    爆头 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  3. 记一次CTF比赛过程与解题思路-MISC部分

    前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼- 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近 ...

  4. n皇后2种解题思路与代码-Java与C++实现

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了n皇后问题的解题思路,并分别用java和c++实现了过程,最后,对于算法改进 ...

  5. [LeetCode] 234. Palindrome Linked List 解题思路

    Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time ...

  6. 2019年美国大学生数学建模竞赛(MCM/ICM) E题解题思路

    这也许是我大学生涯最后一次参加数学建模比赛了吧,这次我们选择的问题是E题,以下是我们解题时候的一些思路.很多不易体现的项目产生对环境造成影响的指标可以由一些等同类型的指标来代替,如土地.森林植被被破环 ...

  7. [LeetCode] 53. Maximum Subarray 解题思路

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  8. MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05

    目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库.表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操 ...

  9. Z1. 广度优先搜索(BFS)解题思路

    /** BFS 解题思路 特点:从某些特定的节点开始,感染相邻的节点; 被感染的节点,再感染其相邻的节点,以此类推. 题目常见于数据结构包括 二维数组.树.图 **/ /** 1). 二维数组特定节点 ...

随机推荐

  1. sql的交叉连接,内连接,左外连接,右外连接,全外连接总结

    实践是最好的检验,一直都对这几个连接查询出来的结果有什么不同不大理解,然后自己放一块查询比较了一下,用结果来说话~ 先建两张表如下: t1: id name age 1 张三 18 2 李四 25 t ...

  2. SRM 599 DIV1

    A 首先发现对于2操作,每种素因子可以单独考虑,然后取出步数最多的计入答案,然后分别加上对每种素因子的1操作; 第二步我犯了个错误,以为最优方案是把素因子指数按二进制操作,在1的位置执行1操作,0的位 ...

  3. 法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M【图片 价格 品牌 报价】-京东

    法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M[图片 价格 品牌 报价]-京东 法爱格2014 春夏新款欧美纯色修身高腰无袖吊带V领 拼接性感 连衣裙 黑色 M

  4. 齐B小短裙

    女模周蕊微博引关注 火了齐B小短裙毁了干爹[图]_网易新闻中心 齐B小短裙

  5. event.keyCode列表

    Keycode对照表 字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 ...

  6. MySQL查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): ) [and other_cond ...

  7. PHP设计模式笔记九:装饰器模式 -- Rango韩老师 http://www.imooc.com/learn/236

    装饰器模式(Decorator) 概述 1.装饰器模式可以动态地添加修改类的功能 2.一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法 3. ...

  8. 可失败构造器(Failable Initializers)

    Xcode6.1中Swift的最新版本是1.1,在该版本中引入了一个新的特性:可失败构造器.通过构造器初始化实际上是给class或struct的每一个存储属性(参数)提供初始值,进行对象实例化的过程. ...

  9. 关于target is null for setProperty的问题总结

    出现了这个问题,报错是 com.opensymphony.xwork2.ognl.OgnlValueStack WARN  - Error setting expression 'costRecord ...

  10. Play Framework Web开发教程(33): 结构化页面-组合使用模板

    和你编写代码相似,你编写的页面也能够由多个小的片段组合而成,这些小的片段本身也能够由更小的片段构成.这些小片段一般是能够在其他页面反复使用的:有些部分能够用在全部页面,而有些部分是某些页面特定的.本篇 ...