洛谷 P1355 神秘大三角 計算幾何基礎

2021-07-26 03:42:51 字數 1318 閱讀 8558

p1355 神秘大三角

題目提供者yeszy

標籤 福建省歷屆夏令營

難度 普及/提高-

題目描述

判斷乙個點與已知三角形的位置關係。

輸入輸出格式

輸入格式:

前三行:每行乙個座標,表示該三角形的三個頂點

第四行:乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係

(詳見樣例)

所有座標值均為整數。

輸出格式:

若點在三角形內(不含邊界),輸出1;

若點在三角形外(不含邊界),輸出2;

若點在三角形邊界上(不含頂點),輸出3;

若點在三角形頂點上,輸出4。

輸入輸出樣例

輸入樣例#1:

(0,0)

(3,0)

(0,3)

(1,1)

輸出樣例#1:

1 說明

【資料規模與約定】

對於100%資料,0<=所有點的橫、縱座標<=100

/*

計算幾何第一題留念flag.

判斷三角形的位置.

用點積和叉積.

所謂點積就是我們平常說得數量積,結果是乙個數量.

a·b=|a||b|cos=x1*x2+y1*y2.

而叉積的結果是乙個向量,是垂直於向量a,b所形成的平面

a×b=|a||b|sin=x1*y2-x2*y1.

在頂點上的直接判就可以了.

在邊上的話有pa×pb=0&&pa·pb<0充要條件.

在內部我們可以得到互不相同的兩個叉積(p點為始點)和的模

等於三角形任意兩邊叉積的模.

否則就在外邊咯.

*/#include

#include

#define maxn 1001

using namespace std;

int x1,y1,x2,y2,x3,y3,x,y;

bool flag;

inline int read()

while(ch>=

'0'&&ch<=

'9') x=x*

10+ch-

48,ch=getchar();

return x*f;

}int fabs(int x)

void slove()

void slove2()

void slove3()

int main()

洛谷 P1355 神秘大三角

判斷乙個點與已知三角形的位置關係。若點在三角形內 不含邊界 輸出1 若點在三角形外 不含邊界 輸出2 若點在三角形邊界上 不含頂點 輸出3 若點在三角形頂點上,輸出4。非常簡單,只要你會 1.讀入,因為有括號,所以我只能先用字串讀,然後慢慢轉成數字。這一步注意,不要忘記資料裡有三位數,要打好相應的 ...

洛谷P1355 神秘大三角

題目描述 判斷乙個點與已知三角形的位置關係。輸入輸出格式 輸入格式 前三行 每行乙個座標,表示該三角形的三個頂點 第四行 乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係 詳見樣例 所有座標值均為整數。輸出格式 若點在三角形內 不含邊界 輸出1 若點在三角形外 不含邊界 輸出2 若點在三角形邊...

神秘大三角 洛谷P1355 叉積)

判斷乙個點與已知三角形的位置關係。輸入格式 前三行 每行乙個座標,表示該三角形的三個頂點 第四行 乙個點的座標,試判斷該點與前三個點圍成三角形的位置關係 詳見樣例 所有座標值均為整數。輸出格式 若點在三角形內 不含邊界 輸出1 若點在三角形外 不含邊界 輸出2 若點在三角形邊界上 不含頂點 輸出3 ...