四點共面問題(51nod 1265)

2021-07-26 00:08:22 字數 607 閱讀 1441

涉及一些線性代數的知識。

如果四點共面,利用這4個點產生3個向量,只要這3個向量包含全部4個點,則這3個向量共面,意味著這3個向量線性相關,那麼這3個向量構成的3*3的矩陣

a 秩虧缺,即四點

共面⟺三

向量共面

⟺ran

k(a)

<3⟺

det(

a)=0

所以只需檢查矩陣的行列式是否為0,即可判斷四個點是否共面。

#include 

#define for(i, a, b) for(int i=a; iusing

namespace

std;

int main()

}//得到三個向量,構成矩陣

for(i, 0, 3)

}//計算矩陣行列式

int det = 0;

for(i, 0, 3)

det += tmp;

}for(i, 0, 3)

det -= tmp;

}if (det)

cout

<<"no"

cout

<<"yes"

0;}

51nod1265四點共面

原題鏈結 四點共面即以某點指向其它三點的向量的混合積為0 如下 include include include include include include include include include include include include define ll long long us...

51Nod 1265 四點共面

1265 四點共面 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出三維空間上的四個點 點與點的位置均不相同 判斷這4個點是否在同乙個平面內 4點共線也算共面 如果共面,輸出 yes 否則輸出 no input 第1行 乙個數t,表示輸入的測試數量 1 t 1000 ...

51nod1265 四點共面

傳送門 點我 給出三維空間上的四個點 點與點的位置均不相同 判斷這4個點是否在同乙個平面內 4點共線也算共面 如果共面,輸出 yes 否則輸出 no input 第1行 乙個數t,表示輸入的測試數量 1 t 1000 第2 4t 1行 每行4行表示一組資料,每行3個數,x,y,z,表示該點的位置座標...