栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3596 Illuminated Planet

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3596 Illuminated Planet

#include <cstdio>#include <cmath>#include <iostream>using std::cin;using std::cout;using std::endl;const long double PI2=asin((long double)1);const long double eps=1e-11;long double xx1,yy1,zz1,r;long double xx2,yy2,zz2,R;long double xx3,yy3,zz3;long double a,b,c;long double xx,yy,alpha,beta;long double len(long double xx,long double yy,long double zz=0) {return sqrt(xx*xx+yy*yy+zz*zz);}long double calAlpha() {if (R>r) return PI2+asin((R-r)/a);else acos((r-R)/a);}void calPos() {long double p=(a+b+c)/2;long double s=sqrt(p*(p-a)*(p-b)*(p-c));long double h=s*2/a;long double l=sqrt(c*c-h*h);yy=h;if (a*a+c*c-b*b>0) {xx=l;} else {xx=-l;}}long double calBeta() {return atan2(yy,xx)-acos(r/c);}int main() {cin >> xx1 >> yy1 >> zz1 >> r;cin >> xx2 >> yy2 >> zz2 >> R;cin >> xx3 >> yy3 >> zz3;a=len(xx1-xx2,yy1-yy2,zz1-zz2);b=len(xx3-xx2,yy3-yy2,zz3-zz2);c=len(xx1-xx3,yy1-yy3,zz1-zz3);alpha=calAlpha();calPos();beta=calBeta();if (c<=r+eps) cout << "No" << endl;else if (alpha>beta+eps) cout << "Yes" << endl;else cout << "No" << endl;return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号