http://acm.hdu.edu.cn/showproblem.php?pid=1174
题目标题:爆头
题目大意:给你一堆数据,判断能不能爆头
其实就是个高数的题,还用到了叉乘,这个要是没学过的高数的不得哭了
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
double chacheng(double x1,double y1,double z1,double x2,double y2,double z2){
double x=y1*z2-z1*y2;
double y=z1*x2-x1*z2;
double z=x1*y2-y1*x2;
return sqrt(x*x+y*y+z*z);
}
int main()
{
double h1,r1,x1,y1,z1;
double h2,r2,x2,y2,z2,x3,y3,z3;
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>h1>>r1>>x1>>y1>>z1;
cin>>h2>>r2>>x2>>y2>>z2>>x3>>y3>>z3;
double re=chacheng(x3,y3,z3,x1-x2,y1-y2,z1+h1-r1-(h2*0.9+z2-r2));
re/=sqrt(x3*x3+y3*y3+z3*z3);
if(re-r1<0.0000001) printf("YES\n");
else printf("NO\n");
}
return 0;
}