码迷,mamicode.com
首页 > 其他好文 > 详细

poj 3129 How I Wonder What You Are! 点积求两向量夹角

时间:2015-03-20 09:25:09      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:poj   算法   

水题,直接贴代码。

//poj 3129
//sep9
#include <iostream>
#include <cmath>
using namespace std;
const double eps=0.00000001;
struct P{
	double x,y,z;
}p[512],tel[64];
double a[64];
int main()
{
	int i,j,cnt,n,m;
	while(scanf("%d",&n)==1&&n){
		cnt=0;
		for(i=0;i<n;++i)
			scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);
		scanf("%d",&m);
		for(i=0;i<m;++i)
			scanf("%lf%lf%lf%lf",&tel[i].x,&tel[i].y,&tel[i].z,&a[i]);
		for(i=0;i<n;++i){
			int ok=0;
			for(j=0;j<m&&!ok;++j){
				double ra=sqrt(p[i].x*p[i].x+p[i].y*p[i].y+p[i].z*p[i].z);		
				double rb=sqrt(tel[j].x*tel[j].x+tel[j].y*tel[j].y+tel[j].z*tel[j].z);
				double c=acos((p[i].x*tel[j].x+p[i].y*tel[j].y+p[i].z*tel[j].z)/(ra*rb));
				if(c<a[j]||fabs(c-a[j])<eps)
					ok=1;
			}
			if(ok)
				++cnt;
		}
		printf("%d\n",cnt);
	}
	return 0;	
}


poj 3129 How I Wonder What You Are! 点积求两向量夹角

标签:poj   算法   

原文地址:http://blog.csdn.net/sepnine/article/details/44468111

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!