首页 > 其他 > 详细

51 nod 1265 四点共面

时间:2017-08-16 20:50:41      阅读:216      评论:0      收藏:0      [点我收藏+]

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1265

思路 :

通过矩阵

AB=(x2-x1,y2-y1,z2-z1)
BC=(x3-x2,y3-y2,z3-z2)
AB=(x4-x3,y4-y3,z4-z3)

所以,只要考察矩阵:
x2-x1,y2-y1,z2-z1
x3-x2,y3-y2,z3-z2
x4-x3,y4-y3,z4-z3

如果行列式为0,说明4点共面。
如果行列式不为0,说明4点不共面。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int t;
int x[5],y[5],z[5];
int a[10];
int main()
{
cin>>t;
while(t--)
{
int ans = 0;
for(int i=1;i<=4;i++)
{
cin>>x[i]>>y[i]>>z[i];
}
int k=1;
for(int i=1;i<=3;i++)
{
a[k++]=x[i+1]-x[i];
a[k++]=y[i+1]-y[i];
a[k++]=z[i+1]-z[i];
}
ans=a[1]*a[5]*a[9]+a[3]*a[4]*a[8]+a[2]*a[6]*a[7]-a[3]*a[5]*a[7]-a[1]*a[6]*a[8]-a[9]*a[2]*a[4];
if(ans==0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}

 

51 nod 1265 四点共面

原文:http://www.cnblogs.com/sortmin/p/7375427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!