博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1174 爆头(三维空间点与直线关系)
阅读量:4513 次
发布时间:2019-06-08

本文共 1848 字,大约阅读时间需要 6 分钟。

 

大意:中文题,很好理解,搞清楚各种变量就行。

 

思路:我知道的好像有两种解法,一种是求土匪的头心与子弹射出的直线求点到直线距离,在判断一下方向对不对;另一种是求出子弹射出点与土匪头心连线,求出子弹的射出的直线,求两直线的夹角, 求出子弹射出点与土匪头心连线,求出求出子弹射出点与土匪头的切线,求两直线的夹角,比较这两个夹角的大小判断是不是会打到。

 

这里我用第一种方法过的,就贴第一种的吧。

1 struct point 2 { 3     double x, y, z; 4 } A, B, C; 5  6 ///计算cross product U x V 7 point xmult(point u,point v){ 8     point ret; 9     ret.x=u.y*v.z-v.y*u.z;10     ret.y=u.z*v.x-u.x*v.z;11     ret.z=u.x*v.y-u.y*v.x;12     return ret;13 }14 15 ///两点距离,单参数取向量大小16 double Distance(point p1,point p2){17     return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z));18 }19 20 ///矢量差 U - V21 point subt(point u,point v){22     point ret;23     ret.x=u.x-v.x;24     ret.y=u.y-v.y;25     ret.z=u.z-v.z;26     return ret;27 }28 29 ///向量大小30 double vlen(point p){31     return sqrt(p.x*p.x+p.y*p.y+p.z*p.z);32 }33 34 double ptoline(point p,point l1,point l2){35     return vlen(xmult(subt(p,l1),subt(l2,l1)))/Distance(l1,l2);36 }37 38 int n;39 double h1,r1;40 double h2,r2,x3,y3,z3;41 42 void Solve()43 {44     scanf("%d", &n);45     while(n--)46     {47         scanf("%lf%lf%lf%lf%lf", &h1, &r1, &A.x, &A.y, &A.z);48         scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &h2, &r2, &B.x, &B.y, &B.z, &C.x, &C.y, &C.z);49 50         A.z = A.z+h1-r1;51         B.z = B.z+h2*0.9-r2;52 53         double x = A.x-B.x;54         double y = A.y-B.y;55         double z = A.z-B.z;56         //printf("%lf %lf %lf\n", x, y, z);57 58         point D;59 60         D.x = C.x+B.x;61         D.y = C.y+B.y;62         D.z = C.z+B.z;63 64         double d = ptoline(A, B, D);65         //printf("%lf\n", d);66 67         if(d <= r1 && (x*C.x+y*C.y+z*C.z > 0))68         {69             printf("YES\n");70         }71         else72         {73             printf("NO\n");74         }75     }76 }
HDU 1174

 

转载于:https://www.cnblogs.com/Silence-AC/p/3667902.html

你可能感兴趣的文章
递归in C++
查看>>
整合wordpress的插件!!
查看>>
A - LCM Challenge
查看>>
书籍整理
查看>>
arttemplate模板引擎有假数据返回数据多层内嵌的渲染方法
查看>>
APP为什么会被打回来??
查看>>
word中图片不显示了
查看>>
Chap-3 Section 3.1 目标文件格式
查看>>
用NSSM把.Net Core部署至 Windows 服务
查看>>
CentOS6.5 一键部署运行环境shell脚本
查看>>
springMVC 报错:Unknown return value type: java.lang.Integer
查看>>
jquery easyui 验证Combo和ComboBox
查看>>
Looper,MessageQueue,Message,Handler
查看>>
编程珠玑--变位词集合
查看>>
Centos7 忘记密码的情况下,修改root密码
查看>>
第九章:testng——在Android Eclipse ADT 中 在线安装步骤
查看>>
洛谷 - P1063 - 能量项链 - 区间dp
查看>>
Turn the corner (三分)
查看>>
srs2录制flv文件metadata不准确
查看>>
P2512 [HAOI2008]糖果传递
查看>>