poj 2660 War on Weather 计算几何
2015-07-05 18:41
253 查看
//poj 2660 //sep9 #include <iostream> #include <cmath> using namespace std; const double pi=acos(-1.0); const double radius=20000.0/pi; struct P { double x,y,z,angle; }satellite[128]; double dist(double x,double y,double z) { return sqrt(x*x+y*y+z*z); } bool judge(double x,double y,double z,int k) { for(int i=0;i<k;++i){ double a=dist(x,y,z); double b=dist(satellite[i].x,satellite[i].y,satellite[i].z); double c=dist(satellite[i].x-x,satellite[i].y-y,satellite[i].z-z); double tmp_angle=acos((a*a+b*b-c*c)/(2*a*b)); if(tmp_angle<satellite[i].angle) return true; } return false; } int main() { int k,m; while(scanf("%d%d",&k,&m)==2){ if(k==0&&m==0) break; int cnt=0; for(int i=0;i<k;++i){ scanf("%lf%lf%lf",&satellite[i].x,&satellite[i].y,&satellite[i].z); satellite[i].angle=acos(radius/dist(satellite[i].x,satellite[i].y,satellite[i].z)); } for(int i=0;i<m;++i){ double x,y,z; scanf("%lf%lf%lf",&x,&y,&z); if(judge(x,y,z,k)) ++cnt; } printf("%d\n",cnt); } return 0; }
相关文章推荐
- android 相对布局属性
- python httplib2应用get post
- 【java】单例模式涉及的多线程问题
- 谈谈你对流行框架的理解(
- CentOS下安装福昕PDF软件
- 高斯消元法
- 忘记root密码的解决方案
- CENTOS install summary
- Swift学习资料汇总
- Ubuntu运行myeclipse××××.run文件失效!!!
- CXF整合Spring配置文件
- PowerPoint中制造超炫回旋文字收获
- thinkphp-----1
- 【Go】http server 性能测试
- 中国电信大数据:打造数据综合平台能力
- 分离式LAMP平台构建
- 如何在ppt中剔除图片的背景
- AsyncTask的基本使用
- Unity3D默认的快捷键
- 上下影线理论