51Nod 1265 四点共面
来源:互联网 发布:菜鸟手机助手源码 编辑:程序博客网 时间:2024/05/16 17:07
给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面)。如果共面,输出”Yes”,否则输出”No”。
Input
第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)
第2 - 4T + 1行:每行4行表示一组数据,每行3个数,x, y, z, 表示该点的位置坐标(-1000 <= x, y, z <= 1000)。
Output
输出共T行,如果共面输出”Yes”,否则输出”No”。
Input示例
1
1 2 0
2 3 0
4 0 0
0 0 0
Output示例
Yes
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#define eps 1e-8#define zero(x) ((x>0? x:-x)<eps)using namespace std;typedef struct point{ double x,y,z;}point;struct line{ point a,b;};point xmult(point u,point v){ point ret; ret.x=u.y*v.z-v.y*u.z; ret.y=u.z*v.x-u.x*v.z; ret.z=u.x*v.y-u.y*v.x; return ret;}double dmult(point u,point v){ return u.x*v.x+u.y*v.y+u.z*v.z;}point subt(point u,point v) /*计算矢量差*/{ point ret; ret.x=u.x-v.x; ret.y=u.y-v.y; ret.z=u.z-v.z; return ret;}point prevc(point s1,point s2,point s3)/*取平面法向量*/{ return xmult(subt(s1,s2),subt(s2,s3));}int dots_onplane(point a,point b,point c,point d){ return zero(dmult(prevc(a,b,c),subt(d,a)));}int main(){ int T; cin>>T; while(T--) { point a,b,c,d; cin>>a.x>>a.y>>a.z; cin>>b.x>>b.y>>b.z; cin>>c.x>>c.y>>c.z; cin>>d.x>>d.y>>d.z; int flag=dots_onplane(a,b,c,d); if(flag) cout<<"Yes"<<endl; else cout<<"NO"<<endl; }}
阅读全文
0 0
- 51nod 1265 四点共面
- 51NOD 1265 四点共面
- 51 nod 1265 四点共面
- [51nod]1265 四点共面
- 51nod 1265 四点共面
- 51NOD-1265四点共面
- 51nod 1265 四点共面
- 51nod 1265 四点共面
- 51nod 1265 四点共面
- 51Nod 1265 四点共面
- 51Nod 1265 四点共面
- 51Nod-1265 四点共面
- 51Nod 1265 四点共面
- 51nod 1265 四点共面(判四点共面)
- 51nod 1265 四点共面 (水题)
- 51Nod-1265-四点共面
- 51NOD 1265 四点共面(计算几何)
- 51nod oj 1265 四点共面 【数学几何】
- 一部手机做好屏幕适配
- android自动化测试--appium运行的坑问题及解决方法
- scikit-learn 中文文档-大规模计算的策略-用户指南|ApacheCN
- 云计算之路-虚拟化环境搭建及虚拟机创建
- 获取音频的波形
- 51Nod 1265 四点共面
- TensorFlow 真正从零开始,TensorFlow详细安装入门图文教程
- Kafka 如何读取offset topic内容 (__consumer_offsets)
- Javascript(一)
- 【Hibernate】1.Hibernate基础概念
- PIM-DM/SM (1)
- spark用程序提交任务到yarn Spark自定义分区(Partitioner) textfile使用小技巧 createDirectStream
- 转载《Android热更新之初探》
- 计算某年份是否为闰年以及总计过了几个闰年