//身高,又称身长,是指一个人从头顶到脚底的身体长度.
//杭电ACM 1174 爆头
#include<iostream>
#include<cmath>
using namespace std;
#define eps 1e-6
struct Node
{
double x,y,z;
}line[2];
double chaji(Node&a,Node&b)//计算两个向量的叉积
{
double a1=a.x;
double a2=a.y;
double a3=a.z;
double b1=b.x;
double b2=b.y;
double b3=b.z;
double c1=a2*b3-a3*b2;
double c2=a3*b1-a1*b3;
double c3=a1*b2-a2*b1;
return sqrt(c1*c1+c2*c2+c3*c3);
}
int main()
{
double h1,r1,x1,y1,z1;//分别表示土匪的身高,头部半径以及所站的位置。
double h2,r2,x2,y2,z2,x3,y3,z3;//h2,r2,x2,y2,z2,x3,y3,z3,
//分别表示警察的身高,头部半径,所站位置,以及枪头所指方向的方向向量。
int T=0;
cout<<"Enter T pleace: ";
while(cin>>T)
{
for(int i=0;i<T;i++)
{
cout<<"输入土匪的身高,头部半径以及所站的位置: "<<endl;
cin>>h1>>r1>>x1>>y1>>z1;
cout<<"输入警察的身高,头部半径,所站位置,以及枪头所指方向的方向向量: "<<endl;
cin>>h2>>r2>>x2>>y2>>z2>>x3>>y3>>z3;
line[0].x=x3;
line[0].y=y3;
line[0].z=z3;
line[1].x=x1-x2;
line[1].y=y1-y2;
line[1].z=z1+h1-r1-(z2+h2*0.9-r2);
double d=chaji(line[0],line[1]);
d/=sqrt(x3*x3+y3*y3+z3*z3);
if(d-r1<eps)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}
杭电ACM 1174
最新推荐文章于 2022-02-25 19:38:17 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Anything-LLM
AI应用
AnythingLLM是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,帮助用户在本地或云端搭建个性化的聊天机器人系统,且无需复杂设置
925

被折叠的 条评论
为什么被折叠?



