51 nod 1265 四点共面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51 nod 1265 四点共面相关的知识,希望对你有一定的参考价值。

题目链接: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 四点共面的主要内容,如果未能解决你的问题,请参考以下文章

51nod--1265 四点共面

51nod1265 四点共面

51Nod1265 四点共面

51nod_1265:四点共面(计算几何)

51nod 1265 四点共面

51 nod 1265 四点共面