51Nod 四點共面

2021-08-18 11:41:31 字數 1102 閱讀 2293

1265 四點共面

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 

難度:基礎題

給出三維空間上的四個點(點與點的位置均不相同),判斷這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#includeusing namespace std;

struct point ;

int main()

}

方法二:

先解出三個點的平面方程,再把第四個點帶入,就可以了;

要先學一下向量叉乘的概念。

首先,我們利用三個點,得到ab,ac,然後利用叉乘,計算出平面abc的法向量。叉乘的公式在上面。得到法向量後,就可以設出平面abc的方程了。最後再把點帶進去。手算過程如下:

因為 ab=(-3,-3,3),ac=(0,-2,3),

因此平面的法向量為 n=ab×ac=(-3,9,6),

所以,由平面方程的點法向式可得,所求平面方程為 -3(x-1)+9(y-1)+6(z+1)=0 ,

化簡得 x-3y-2z=0 .

**如下:

#include#includeusing namespace std;

struct point ;

point xiangliangchacheng(point a, point b)

int main()

}

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,表示該點的位置座標...