1265 四點共面
基準時間限制:1 秒 空間限制:131072 kb 分值: 0
難度:基礎題
給出三維空間上的四個點(點與點的位置均不相同),判斷這4個點是否在同乙個平面內(4點共線也算共面)。如果共面,輸出"yes",否則輸出"no"。
input
第1行:乙個數t,表示輸入的測試數量(1 <= t <= 1000)output第2 - 4t + 1行:每行4行表示一組資料,每行3個數,x, y, z, 表示該點的位置座標(-1000 <= x, y, z <= 1000)。
輸出共t行,如果共面輸出"yes",否則輸出"no"。input示例
1output示例1 2 0
2 3 0
4 0 0
0 0 0
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,表示該點的位置座標...